SSH 远程连接不上电脑
现象
NetX 里 SSH 连接目标设备时:
- 一直转圈超时
- 提示"连接被拒绝"
- 提示"连接被重置"
- 提示"用户名或密码错误"
排查顺序
情况一:一直转圈超时
说明网络层面根本没通到 SSH 端口(默认 22)。
排查:
- 用 NetX Ping 一下目标设备的 IP → ping 不通 → 目标设备不在同一局域网或 IP 错了
- 用 NetX 端口扫描 扫目标设备的 22 端口 → 显示 Filtered → Windows 防火墙没放行 sshd → 去目标电脑放行:
netsh advfirewall firewall add rule name="OpenSSH Server" dir=in action=allow protocol=TCP localport=22
- 端口扫描显示 Closed → sshd 服务根本没运行,检查目标电脑:
- Windows:
Get-Service sshd→ 如果 Stopped,Start-Service sshd - Linux:
systemctl status ssh→ 如果 dead,systemctl start ssh
情况二:连接被拒绝
TCP 连到了但端口没服务在监听。大概率是 sshd 没启动(同上),或 sshd 监听了非 22 端口。
情况三:连接被重置
Windows 内置 OpenSSH 有时会拒绝 NetX 的连接(出于安全原因)。试试:
- 用手机上的另一个 SSH 客户端(如 Termux 里的
ssh命令)连一下,看看是不是 NetX 独有的问题 - 目标电脑检查 OpenSSH 的日志:
- Windows:
C:\ProgramData\ssh\logs - Linux:
journalctl -u ssh
情况四:用户名或密码错误
这是最常见的报错。 注意几点:
- Windows OpenSSH 的用户名是 本地账户名(不是微软账户邮箱),密码也是本地账户密码
- 如果用了微软账户登录,需要在 OpenSSH 里配置专用本地账户
- Linux 用户确认账户没被锁定(
sudo passwd -u 用户名)
情况五:NetX 本身的限制
部分版本的 NetX SSH 只支持密码认证、不支持密钥认证,也不支持指定非 22 端口。如果你做了密钥登录或非标准端口,需要在目标电脑上改回密码登录 + 22 端口,或确认 NetX 当前版本是否支持。
快速验证法
在电脑上先用命令行验证 sshd 是不是好的:
- Windows:
ssh localhost(自己连自己,能进去说明 sshd 好的) - Linux:
ssh localhost(同上)
自己连自己能进,说明 sshd 服务没问题,剩下就是 NetX 连过来的路径问题(端口 / 防火墙 / 用户名密码)。