• 使用XShell、XFTP 连接 win7 虚拟机(windows、Linux无法远程登录问题)



    前言

    更新:可以通过此文章解决三个问题:使用Windows/linux远程连接Linux或Windows,但无法连接,可以对Windows检查ssh,对Linux检查sshd
    首先,你看到这篇文章的原因可能是如下两个(此篇我们以Windows7为例,因为win10ssh一般是开着的):

    1. 还没有尝试使用 [XShell 连接 Windows 7 系统(此篇文章针对 Windows7 虚拟机,但如果主体电脑是 Windows 7 系统作为服务器的话,原理也应该是差不多的)。
    2. 尝试使用 XShell 连接了 Windows 7 系统,但是连接失败(是的,就是我 )。
      在这里插入图片描述

    OK,下面我们就开始解决该连接失败问题!!!


    出错原因

    科普 tips:Linux 中查看网络状态使用命令 ifconfig(终端),Windows 中则使用 ipconfig(命令行)
    使用XShell、XFTP连接虚拟机或者服务器教程

    在这里插入图片描述
    由此图可见(通过上面的命令先找出我们的IPV4的IP地址),出现问题的地方有几处:

    1. SSH 协议,因为 WIndows 7 的 SSH 、sshd默认是关闭的(也可能是没有安装)。
    2. 端口号 22:我们使用SSH(安全登录)、SCP(文件传输)、端口号重定向,默认的端口号为22,所以有可能是因为 22 端口没有打开,所以连接不到。
    3. 原因 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    # 开启服务
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    以下为每一步的截图:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    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用户 )。

    1. 检查ssh是否打开ps -e | grep ssh(在终端(terminal)中输入)
      应该是没有ssh出现,因为出现了就证明你可以用xshell连接成功,或者问题不是这个
      在这里插入图片描述

    2. 安装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 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    (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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述

    在这里插入图片描述

    参考文章:

    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的问题


    写在最后:
    首先,如果本篇文章有任何错误,烦请读者告知!不胜感激!
    其次,本篇文章仅用于日常学习以及学业复习,如需转载等操作请告知作者(我)一声!
    最后,本文会持续修改和更新,如果对本分栏的其他知识也感兴趣,可以移步目录导航专栏,查看本分栏的目录结构,也更方便对于知识的系统总结!
    兄弟姐妹们,点个赞呗!
    感谢!笔芯!

  • 相关阅读:
    高质量文档管理软件的 5 个基本功能以及选择文档管理系统时要考虑的五个问题
    SpringBoot中如何获取request对象呢?
    C语言第三章第5节数据的输出学习导案
    【AI】深度学习——前馈神经网络——全连接前馈神经网络
    对pytorch中的文本分类实例代码进行逐行注释
    Matlab中的功率谱分析方法与实例分析
    关于MySQL并发控制的基础,你知道吗?
    ActiveMQ反序列化漏洞复现(CVE-2015-5254)
    Windows 和 Linux 下后台运行 Jar包
    A-Level数学例题解析及练习Natural logarithms
  • 原文地址:https://blog.csdn.net/weixin_52275610/article/details/127378955