使用XShell、XFTP 连接 win7 虚拟机(windows、Linux无法远程登录问题) | 您所在的位置:网站首页 › 虚拟机无法访问ftp › 使用XShell、XFTP 连接 win7 虚拟机(windows、Linux无法远程登录问题) |
文章目录
前言出错原因(题外话)那么我们为什么要使用 SSH 连接开始操作(Windows7)首先进行 SSH 测试获取所需的openSSH文件安装openSSH添加环境变量ssh测试发布ssh服务
开始操作(Linux,以Ubuntu为例)
前言
(更新:可以通过此文章解决三个问题:使用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的问题 写在最后: 首先,如果本篇文章有任何错误,烦请读者告知!不胜感激! 其次,本篇文章仅用于日常学习以及学业复习,如需转载等操作请告知作者(我)一声! 最后,本文会持续修改和更新,如果对本分栏的其他知识也感兴趣,可以移步目录导航专栏,查看本分栏的目录结构,也更方便对于知识的系统总结! 兄弟姐妹们,点个赞呗! 感谢!笔芯! |
CopyRight 2018-2019 实验室设备网 版权所有 |