说实话,SSH 这玩意儿,不管你是 Windows 用户还是 Linux 用户,迟早都得学会。你手里有台服务器,不是 Linux 云主机就是自己搭的物理机,想在上面敲命令、改配置、传文件,全都得靠 SSH 连过去。Windows 这边,系统其实早就自带了 OpenSSH 客户端,打开 PowerShell 或者 CMD 就能直接连;Linux 这边更不用说,ssh 命令几乎是每天都要用的基本功。这篇我就把连 SSH 这件事从头到尾捋一遍,从最简单的密码登录,到密钥免密、服务端限制登录用户、多台机器批量管理,再到各种常见坑,一次性讲清楚。适合刚接触服务器的新手,也适合想把手上的连接方式整理一遍的老手。
1. 先弄清楚 SSH 到底在连什么
1.1 SSH 不是一条命令,而是一套协议
很多人第一次接触 SSH 的时候,以为 SSH 就是 ssh user@ip 这一条命令,其实命令只是客户端,真正的核心是一套加密网络协议,工作在 TCP 的 22 端口上。它的作用说白了就是:在不安全的网络上,建立一条加密通道,然后在这条通道里安全地执行远程命令、传输文件、转发端口。
我习惯把它类比成远程主机门口的一扇安检门。你递过去的是用户名和凭证(密码或者密钥),门卫验证通过后放你进去,之后你在这台机器上的所有操作,都是在一个加密隧道里进行的。和以前老旧的 telnet 相比,telnet 是明文把用户名密码从网线上送过去,中途被人抓包就直接泄露了;SSH 则把整条会话都加密了,中间人就算截到数据包也解不开内容。
这里有个容易忽略的点:SSH 是客户端/服务端模式。你本机装的 OpenSSH Client 只是客户端,被连接的机器上必须跑着一个 sshd 服务端进程,负责监听 22 端口。Windows 10 1809 之后的系统自带了 OpenSSH Client,但默认不一定启动 OpenSSH Server 服务,所以你在 Windows 上“连别人”通常没问题,但想让别人“连你的 Windows”,得先去“设置 – 系统 – 可选功能”里把 OpenSSH 服务端装上并启动。
1.2 一个连接请求里藏着三个关键信息
无论用什么工具,发起一次 SSH 连接,本质上你都在提供三个信息:
- 目标地址:IP 地址或域名,告诉客户端要连到哪台机器。
- 端口号:默认是 22,但如果服务端改了端口,你就得用
-p参数指定。 - 登录身份:也就是用户名 + 认证凭证。凭证常见的有两种,一种是密码,另一种是密钥对(私钥留在本地,公钥放到服务器)。
搞清楚这三要素之后,排查问题就简单多了。连接失败的时候,先别慌,按这个顺序问自己:IP 通不通?端口对不对?用户名有没有写对?认证方式是否匹配?大部分连接问题都出在这三件事上。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Windows 下连接 SSH 的几种方式
2.1 系统自带 OpenSSH 客户端,够用但别嫌它简陋
Windows 10 1809 及以后的版本,PowerShell 或者 CMD 里直接敲 ssh 命令就能用,不需要额外安装任何软件。比如我要连一台内网服务器,地址是 192.168.1.20,用户名是 root,直接输入:
bash复制ssh root@192.168.1.20
第一次连接的时候,系统会提示你确认远程主机的指纹(fingerprint),输入 yes 回车即可。这一步很多新手会紧张,其实它是在告诉你“这台主机的身份指纹是 xx,你确定要连吗”,防止中间人攻击。正常输入 yes 就行,除非你明确知道这台机器的指纹发生了变化。
如果你要连的端口不是默认的 22,比如是 2222,那就加个 -p 参数:
bash复制ssh -p 2222 root@192.168.1.20
输入密码的时候,屏幕上不会显示任何字符,也不会出现星号,这是正常的,别以为键盘坏了,直接敲完回车就行。
自带客户端的缺点也很明显:没有会话保存功能,每次都要重新敲一遍 IP 和用户名;文件传输还得另开一个窗口用 scp 或 sftp。所以我平时虽然会用到它,但真正管理多台服务器的时候,还是更依赖第三方工具。
2.2 第三方 SSH 工具选哪个,我说下我的使用感受
如果你需要管理多台服务器,或者经常要传文件,建议装一个图形化工具。市面上一堆,但真正让我长期用下来的不多。
Bitvise SSH Client 是我用得比较久的一个,免费且功能扎实,终端和 SFTP 文件管理集成在同一个窗口里,左边传文件右边敲命令,非常顺手。它还支持端口转发、动态隧道,适合在 Windows 上做网络调试。
Xshell 也是很多人推荐的,界面更现代,会话管理很强大,家庭版免费。MobaX
