使用SSH远程访问



  1. 可以使用xshellxftp进行远程管理,软件下载见官网下载免费的教育版即可
  2. 原参考教程可见中之的视频

局域网访问

为windows开启SSH

  • 设置 > 搜索“添加可选功能” > 添加功能 > 安装OpenSSH客户端
  • 可以查看ssh的版本来验证是否安装成功:
    ssh -V
  • Win+S搜索“计算机管理”,在“服务”中找到OpenSSH Authentication AgentOpenSSH SSH Server,将启动类型 改为“⾃动”,并分别启动服务
  • 检查两项服务的运⾏状态:
    Get-Service -Name *ssh*
    若显示
    Status           Name                DisplayName
    ------           ----                ----------- 
    Running         ssh-agent            OpenSSH Authentication Agent 
    Running         sshd                 OpenSSH SSH Server
    则表示两项服务已经开启成功
  • 查看SSH服务器是否已经开始监听默认的22号端⼝:
    netstat -an | findstr :22
    应显示
    TCP                   0.0.0.0:22                 0.0.0.0:0                   LISTENING  
    TCP                   [::]:22                    [::]:0                      LISTENING
  • 通过ipconfig查询PC的内网IP地址,这个其他局域网中的节点奖通过此IP地址访问。

使用命令行连接

  • **要确保访问与被访问节点都已安装并运行SSH服务
  • 可以运行命令提示符运行以下命令连接目标节点
    ssh username@ip
    注意: Windows 10下, username 应为登陆的微软账号,运⾏该命令后,要输⼊对应微软账户的密码。
    第⼀次连接会弹出以下内容:
    The authenticity of host 'centos (101.xxx.xxx.xxx)' can't be established.  
    ED25519 key fingerprint is SHA256:ZakYgdQayDyXBudJjNDUsfJgTJRz92+HKT5nqP2ckdY.  
    This key is not known by any other names  
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes  
    Warning: Permanently added 'centos' (ED25519) to the list of known hosts.
    之后便会将公钥保存在 /Users/username/.ssh/known_hosts 中。
    连接到Linux服务器的⽅法类似。

使用公私钥免秘连接

创建本地公私钥

  • 在本地创建公钥和私钥(一路Enter即可,建议使用rsa),如在GITHUB中生成并配置过,用已有的公私钥即可
    ssh-keygen -t rsa
  • 可以检查 ~/.ssh ⽬录⽣成的公钥和私钥:
    ls ~/.ssh
  • 将公钥上传到Linux服务器:(无云端可跳过)
    ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip
    注意私钥一定不要泄露
  • 公私钥存储在C:\Users\username\.ssh目录下,其中id_rsa为私钥,id_rsa.pub为公钥

被访问端配置

  • 使用文档打开C:\Users\username\.ssh\authorized_keys将公钥内容全部添加进文件中,当有多个公钥时,使用回车分隔,每行一个公钥
  • 修改 C:\ProgramData\ssh\sshd_config
  • 确保以下三行没有注释:
    PubkeyAuthentication yes  
    AuthorizedKeysFile .ssh/authorized_keys  
    PasswordAuthentication no
  • 确保以下两行被注释
    #Match Group administrators  
    # AuthorizedKeysFile  
  • 使用Restart-Service sshd 重启sshd服务,若失败则⼿动在“计算机管理” > “服务”中重启OpenSSH SSH
    Server
  • 在访问端测试免密登陆

使用xshell与xftp进行远程访问

一定是在已配置好双方SSH服务的情况下使用

  1. 新建会话
    12.内网穿透-1
  2. 名称自拟,主机栏填写被访问节点的局域网IP,端口号保持默认22
    12.内网穿透-2
  3. 开启会话
  4. 输入用户名
  • 此用户名为被访问节点中的用户名,如windows中的Administrator,linux中的root,密码为windows中对应的登录密码,如未设置则无法用密码登录 12.内网穿透-4
  • 如果已在被访问节点将本机公钥配置到了~/.ssh/authorized_keys文件中,可以选取本地私钥~/.ssh/id_rsa,直接免密访问
    12.内网穿透-3
  • xftp配置与连接同理
  • xshelxftp中,启动会话后都可以使用当前会话连接快速唤醒对方,以便使用
    12.内网穿透-5
    在访问被映射到外网端口的服务器时,只是IP与端口号有相应变化

xftp出现中文乱码情况

  • 出现中文乱码是因为当前会话的编码选择错误
  • 需要修改当前会话选项中的编码为Unicode(UTF-8),如下图所示:
    12.使用SSH远程访问-1

文章作者: Austin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Austin !
  目录