SSH是一种传输协议,通过TCP传输加密通信来保护数据在传输过程中的安全性,广泛应用于系统管理、文件传输和远程命令执行等场景。
配置 SSH
连接到远程主机的原理与连接MC服务器类似,关键在于确定远程主机的IP地址和端口。
Windows系统
将Windows系统作为远程主机的情况确实比较少,但确实存在(而且配置过程更具挑战性!)
安装 SSH 服务
首先在要连接的主机上打开设置,搜索“可选功能”,在“添加可选功能”中搜索“OpenSSH服务器”,下载该功能。
启动并配置 SSH 服务
管理员权限打开Powershell,输入:
|
|
然后开放防火墙端口(默认22):
|
|
还可以通过以下方法实现:
| 步骤 | 操作 |
|---|---|
| 打开防火墙高级设置 | 控制面板 > Windows Defender 防火墙 > 高级设置(或win+R输入wf.msc) |
| 新建入站规则 | 右键“入站规则” > 新建规则。 |
| 选择规则类型 | 选择“端口” > 下一步。 |
| 指定端口和协议 | 协议类型:选择 TCP;特定本地端口:输入 22 > 下一步。 |
| 选择操作 | 选择“允许连接” > 下一步。 |
| 选择配置文件 | 默认全选(域、专用、公用)> 下一步。 |
| 指定规则名称 | 如“允许 IPv6 22222 端口” > 完成。 |
备注如果有时开放了防火墙但仍无法连接,可尝试重启电脑(我就是这样解决的……)
Linux系统
安装 OpenSSH Server
|
|
启动 SSH 服务
编辑配置文件:
|
|
确保以下配置项存在且未被注释:
|
|
如果要启用IPV6的SSH连接,还应该保持以下内容未被注释:
|
|
启动SSH服务:
|
|
输出中应显示active (running)。
配置防火墙
允许 SSH 默认端口(22):
|
|
获取服务器的IP地址
|
|
找到类似 192.168.x.x 的局域网 IP 或公网 IP(如果适用)。
WSL系统
连接WSL系统实在是迷惑行为,但本人就使用了近半年……
现在我已转向完整的Ubuntu系统,还是纯净的用的爽!
WSL系统的SSH配置与纯Linux系统类似,但要注意的是不能使用systemctl启动服务,请使用:
|
|
验证服务是否运行:
|
|
注意:
必须保证Windows防火墙的22端口已被放行;
WSL系统是Windows的子系统,在Windows开机时,WSL的ssh功能默认并不能开启,此时需要将WSL的ssh注册为系统服务实现Windows开机时启用WSL的ssh功能。
下面给出使用任务计划程序(无需第三方程序)的方法:点击展开
打开任务计划程序:Win+R → taskschd.msc
创建任务:
| 选项 | 操作 |
|---|---|
| 名称 | StartWSL |
| 触发器 | 选择「计算机启动时」 |
| 操作 | 新建 → 程序/脚本:wsl.exe,参数:-d Ubuntu-22.04 -u root /usr/sbin/service ssh start(或 -d Ubuntu-22.04 true 单纯启动实例) |
| 设置 | 勾选「允许任务按需运行」 |
保存时输入管理员密码。重启测试即可。
Termux
连接 SSH
直接连接
在 Windows 本地测试:
|
|
从局域网其他设备连接:
|
|
SSH配置文件
通常位于C:\Users\你的用户名\.ssh\config文件中。
|
|
注意:VScode的
Host名会绑定远程主机的操作系统(Windows、Linux、MacOS),如果使用同一个Host名连接不同操作系统的主机,需要在设置中修改,否则会报错。(就因为这个,让我花了近1小时)修改方法:打开
设置,搜索Remote Platform,修改相应项的值Remote Platform
使用SSH密钥
SSH密钥可以实现免密登录,省去输入密码的操作,但需要保证私钥文件的存放安全。
制作密钥对
首先在服务器上制作密钥对:用密码登录到你打算使用密钥登录的账户,然后执行以下命令:
|
|
之后会让你进行如下配置:
|
|
在服务器上安装公钥
键入以下命令,在服务器上安装公钥:
|
|
也可以直接将
id_rsa.pub文件中的内容复制到authorized_keys文件中。
为了确保连接成功,请保证以下文件权限正确:
|
|
打开密钥登录功能
编辑/etc/ssh/sshd_config文件,进行如下设置:
|
|
另外,请留意 root 用户能否通过 SSH 登录:
1PermitRootLogin yes
当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录:
|
|
最后,重启 SSH 服务:
|
|
下载私钥到客户端
使用 WinSCP、SFTP 等工具将私钥文件id_rsa下载到客户端机器上,之后在SSH客户端中可输入私钥文件所在目录或其中的内容实现免密登录SSH。
SSH应用程序
SSH应用程序可以简化连接操作,而且可以使用SFTP方便地进行文件上传和下载。
Visual Studio Code
这是目前为止(我发现的)最方便的SSH应用,只需下载VScode并安装Remote-ssh插件,写好配置文件后就能连接。

全程免费,而且附带端口转发、文件编辑、下载等功能。
Tabby
Tabby是一款现代的终端应用,界面简洁。
ServerBox
ServerBox是一款国产的远程服务器监控和操作应用,支持Windows、Linux、Android、MacOS等操作系统。优点是可以监测服务器实时运行状态(包括CPU、内存、温度、网络、硬盘等)。

注意,Serverbox自带的脚本只支持监控Linux系统的运行数据,对于WSL系统,只能监控部分数据。
以下是各ssh应用程序的功能比较:
| 应用 | 特点 | 平台 |
|---|---|---|
| VScode | 功能最强大 | Windows/Linux/MacOs |
| Tabby | 界面简洁美观 | Windows/Linux/MacOS |
| Serverbox | 可以监控服务端的运行 | Windows/Android/MacOS |
