局域网访问
为windows开启SSH
- 设置 > 搜索“添加可选功能” > 添加功能 > 安装OpenSSH客户端
- 可以查看ssh的版本来验证是否安装成功:
ssh -V
- Win+S搜索“计算机管理”,在“服务”中找到
OpenSSH Authentication Agent
和OpenSSH 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服务
- 可以运行命令提示符运行以下命令连接目标节点
注意: Windows 10下, username 应为登陆的微软账号,运⾏该命令后,要输⼊对应微软账户的密码。ssh username@ip
第⼀次连接会弹出以下内容:
之后便会将公钥保存在 /Users/username/.ssh/known_hosts 中。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.
连接到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服务的情况下使用
- 下载地址下载教育免费版
- 新建会话
- 名称自拟,主机栏填写被访问节点的局域网IP,端口号保持默认22
- 开启会话
- 输入用户名
- 此用户名为被访问节点中的用户名,如windows中的Administrator,linux中的root,密码为windows中对应的登录密码,如未设置则无法用密码登录
- 如果已在被访问节点将本机公钥配置到了
~/.ssh/authorized_keys
文件中,可以选取本地私钥~/.ssh/id_rsa
,直接免密访问 xftp
配置与连接同理- 在
xshel
与xftp
中,启动会话后都可以使用当前会话连接快速唤醒对方,以便使用
在访问被映射到外网端口的服务器时,只是IP与端口号有相应变化
xftp出现中文乱码情况
- 出现中文乱码是因为当前会话的编码选择错误
- 需要修改当前会话选项中的编码为
Unicode(UTF-8)
,如下图所示: