前言
(更新:可以通过此文章解决三个问题:使用Windows/linux远程连接Linux或Windows,但无法连接,可以对Windows检查ssh,对Linux检查sshd)
首先,你看到这篇文章的原因可能是如下两个(此篇我们以Windows7为例,因为win10ssh一般是开着的):
- 还没有尝试使用 [XShell 连接 Windows 7 系统(此篇文章针对 Windows7 虚拟机,但如果主体电脑是 Windows 7 系统作为服务器的话,原理也应该是差不多的)。
- 尝试使用 XShell 连接了 Windows 7 系统,但是连接失败(
是的,就是我)。
OK,下面我们就开始解决该连接失败问题!!!
出错原因
科普 tips:Linux 中查看网络状态使用命令 ifconfig(终端),Windows 中则使用 ipconfig(命令行)
(使用XShell、XFTP连接虚拟机或者服务器教程 )
由此图可见(通过上面的命令先找出我们的IPV4的IP地址),出现问题的地方有几处:
- SSH 协议,因为 WIndows 7 的 SSH 、sshd默认是关闭的(也可能是没有安装)。
- 端口号 22:我们使用SSH(安全登录)、SCP(文件传输)、端口号重定向,默认的端口号为22,所以有可能是因为 22 端口没有打开,所以连接不到。
- 原因 2 的另一种理解:Windows 的防火墙会默认阻止一些网络上的数据,所以你会发现使用 Windows 主机 ping Linux 虚拟机可以顺利 Ping 通,但是反过来却会发现传送数据超时,Ping 不通。
(题外话)那么我们为什么要使用 SSH 连接
在 windows 上使用 ssh 协议是因为该协议通过 tcp22 端口,服务器、路由器、交换机、sftp 等不安全的程序通过该端口都可以用于帮助加强连接以防止窃听。目前 ssh 协议大多用在 linux 系统中,但 SSH 协议本身实际上是在各种各样的系统上实现的,虽然在 windows 操作系统中不是默认开启的,但开启后可以和 linux 操作系统一样简单方便的使用 ssh 协议来连接服务器等。
开始操作(Windows7)
首先进行 SSH 测试
先在Windows中进行 ssh 命令测试,如果出现下面这样的结果,则继续阅读,否则可以跳过下面下载ssh 的步骤。(win+R输入cmd,回车,然后输入ssh)
出现该结果说明没有ssh,下面进行安装。click me 跳转
获取所需的openSSH文件
在Windows7的浏览器(刚安装之后默认是IE)中的地址栏搜索:https://github.com/PowerShell/Win32-OpenSSH/releases
估计加载不出来,IE,你懂得,所以最好的方式是先打开www.baidu.com,然后搜索一款可以打开下载页面的浏览器(不知道为什么下载火狐的页面打不开,估计是IE的一些访问设置,搞起来挺累,我就直接下载了猎豹安全浏览器,后面再卸载就行),看下图,进去之后点击立即下载,然后选择运行或者保存即可。
然后打开你刚下载的浏览器,输入前面的那个 GitHub网址搜索,要等待一段时间,或者时间长不出来就换个网试试。(一段时间后,没错,我又在猎豹里面下载了 Firefox(火狐),没办法,猎豹页面可以出来,但是下安装包的地方出不来) ,Firefox进入页面后,选择32 位或者 64 位均可,此处选择 64位(点击之后会弹出下载页面,要是没有弹出来可能是默认下载路径了,直接到浏览器里面的“下载”页打开查看下载进度,亲测,我无脑一直点,下载了好多个~~~):
等待时间可以下载个解压软件,推荐band.zip
更新:一个博主的方法,但是我没有进行准确度测试,稳妥就选我的方式,想玩玩儿的可以看一看试验下:提升访问github.com网址的速度
安装openSSH
下载完成后进行解压,并把openSSH整个目录进行复制到 C:\Program Files (其实哪个目录都可以,不过建议安装在这里,免得出问题)
添加环境变量
单击计算机,右键——>属性——>高级系统设置——>环境变量——>系统变量,在此框里面找到 Path 进行编辑, 将路径“C:\Program Files\OpenSSH-Win64”添加进去。
如果是win10的话直接“新建”——>然后添加即可。
(没有计算机图标的可以桌面右键“个性化”——>“左上方更改桌面图标”——>选中计算机前的框——>应用,确定)
ssh测试
接着就可以进行ssh测试了(重新打开一个命令行窗口),出现下图输出证明安装成功!但是此时还是不能远程连接登录。
发布ssh服务
依次在命令行(在开始菜单下面输入cmd,然后选中右键“以管理员身份运行”)中输入以下命令(觉得麻烦可以在做该设置的虚拟机中的浏览器打开本文章直接copy):
# #的部分均为注释部分,不用理会
cd C:\Program Files\OpenSSH-Win64\OpenSSH-Win64 #必须先转到我们之前加入到环境变量中的路径下,即:ssh的文件夹内部,不然后面的步骤会报错
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1 #安装sshd服务
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22 # 开放22号端口(如果你在windows关闭了防火墙并配置了入站规则可以不执行如下命令,多执行不影响)
sc config sshd start= auto #配置开机自启动sshd服务
net start sshd # 开启服务
以下为每一步的截图:
OK!到这一步做完就差不多了,接着验证一下22号端口是否处于 listening 状态。
使用命令 netstat -an
成功!接着就可以顺利使用xshell进行远程连接或者使用xftp进行传文件了。
连接的时候要是重复向你弹出SSH拒绝了密码之类的话证明要么是你用户名填错了,要么是你填的用户名没有设置密码(没错是我),记得回去重设密码再登录。
开始操作(Linux,以Ubuntu为例)
其实吧,SSH可以理解为client,sshd可以理解为server,因为咱们是用Windows去远程连接Linux系统,某种程度上说,被远程连接的这个机子就是咱们的服务器,所以sshd说是要打开的(不知道理解的对不对,我是这么感觉的)
此处操作均已Ubuntu为例,其他的Linux发行版可能shell命令会有所不同,但原理是一样的(为了防止意外错误,可以先转换到root用户下再操作,Ubuntu默认无root,使用 sudo passwd
设置新密码,然后使用 su root
输入并新密码进入root用户 )。
-
检查ssh是否打开
ps -e | grep ssh
(在终端(terminal)中输入)
应该是没有ssh出现,因为出现了就证明你可以用xshell连接成功,或者问题不是这个 -
安装SSH(如果已存在则跳过该步骤)
(1) apt-get 可以使用的情况下:
使用如下命令安装:
su root //需要先切换为root用户下才有权限,已切换则不用
// 输入密码
// 一般情况下下面这两步操作是可以不做的
apt-get update //apt-get update是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。只是更新了apt的资源列表,没有真正的对系统执行更新
apt-get upgrade //进行升级, 过程中需要输入一次 y
//进行安装
apt-get install ssh
(2)如果发现在使用如apt-get install ssh
或者sudo apt-get install ssh
等一些命令时无法安装,出现 “unable to locate package xxx” 或是 “Unit sshd.service could not be found” 这样的错误,则使用下面的命令安装ssh
//找一个存放ssh文件的目录
cd /home
mkdir myssh
cd myssh/
//安装
wget http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-5.9p1.tar.gz //下载安装包
tar xzvf openssh-5.9p1.tar.gz //解压 此处的5.9版本无用在意,会自动在上一步的网址中下载最新版本,只需要输入open然后用tab键自动补全即可
cd openssh-5.9p1 //进入目录
//配置的过程我也是第一次尝试,不确定每一步的原理与结果,所以有的结果可能会有报错,此处只记录我的解决过程,反正结果是好的
./configure
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib2
make
make install
//查看版本确定是否已经可用
ssh -V
//此处应该是直接进行配置文件的设定的,但是此时打开所谓的 /etc/ssh/sshd_config 文件时发现内容很少,很多的配置都是不存在的情况,此时需要再次安装
sudo apt-get install openssh-server //安装ssh服务端
sudo apt-get install openssh-client //安装ssh客户端
systemctl status sshd //查看sshd的状态,在active可以看到绿色文字 running
vim /etc/ssh/sshd_config //查看配置文件,将PermitRootLogin yes加上,查看一下就行,估计是有的,我反正没做这步操作,可跳过,如果后面的步骤不顶用,再回过头设置
//此时可以使用xshell等软件进行远程登录连接,应该是可行的
如果不行则重新启动(紫色字体部分)
systemctl start ssh //启动ssh服务 ,使用 service sshd start 也一样
systemctl restart ssh //重启ssh服务
systemctl stop ssh // 停止ssh服务
// 设置ssh服务开机自启动
sudo systemctl enable ssh
参考文章:
Linux中使用SSH服务远程连接Linux系统
window server如何卸载openssh
虚拟机上的各个端口号代表的意思
为什么在 Windows 上用 SSH
在Windows 10中打开远程桌面连接的5种方法
-File参数的参数’install-sshed.ps1‘不存在| powershell
Windows7之SSH,安装OpenSSH实现SSH客户端及服务
Xshell7远程连接失败(connection failed)的问题解决
Linux系统下OpenSSH的安装及基本配置文件详解
Linux安装OpenSSH与SSL
Unit sshd.service could not be found
Ubuntu 无法连接xshell的问题文章来源:https://www.toymoban.com/news/detail-784904.html
写在最后:
首先,如果本篇文章有任何错误,烦请读者告知!不胜感激!
其次,本篇文章仅用于日常学习以及学业复习,如需转载等操作请告知作者(我)一声!
最后,本文会持续修改和更新,如果对本分栏的其他知识也感兴趣,可以移步目录导航专栏,查看本分栏的目录结构,也更方便对于知识的系统总结!
兄弟姐妹们,点个赞呗!
感谢!笔芯!文章来源地址https://www.toymoban.com/news/detail-784904.html
到了这里,关于使用XShell、XFTP 连接 win7 虚拟机(windows、Linux无法远程登录问题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!