连接 SSH 非默认 22 端口时,推荐使用 ssh -p 端口号 用户名@地址 这种标准格式;-p 后面可以直接紧跟端口号,也可以加空格后再写。若未指定用户名,系统通常会默认使用本地当前用户名,但实际操作中更建议手动明确填写用户名;连接失败的常见原因之一,就是没有添加 -p 参数,结果客户端仍然去尝试连接默认的 22 端口。

最直接的写法就是通过 -p 参数指定 SSH 端口,再配合用户名和服务器地址完成远程登录。
基本写法:用户名@地址 + -p 端口
这是最常见、也最容易理解的 SSH 指定端口连接方式:
- ssh -p 2222 admin@192.168.1.100 —— 使用 admin 账户连接 IP 地址,访问 2222 端口
- ssh -p 12345 root@example.com —— 连接域名 example.com,端口为 12345,并以 root 用户登录
注意:-p 和端口号的写法要清晰、规范,避免命令格式不正确。更稳妥的写法可以是 ssh -p2222,直接把参数和端口连在一起;写成 ssh -p 2222 也同样有效。核心重点只有一个:SSH 端口参数必须写明确,减少歧义,避免因格式问题导致连接异常。
不指定用户名时,默认用当前本地用户名
如果远程主机上恰好存在与你本地登录名一致的账户,那么 SSH 连接时可以省略用户名:
- ssh -p 2222 192.168.1.100 —— 默认使用你当前本机用户(例如 jack)进行登录
不过从实际运维和远程登录习惯来看,仍然建议显式写出用户名,这样能减少因账户不存在或权限不匹配而造成的连接失败。
端口不是 22 时,-p 不可省略
SSH 客户端默认会优先连接 22 端口。如果远程服务器已经把 SSH 服务端口修改为 2222、12345 或其他自定义端口,那么客户端必须通过 -p 明确指定目标端口,告诉 ssh 不要再访问默认的 22 端口。否则,它仍会持续尝试 22 端口,最终出现 Connection refused 等常见报错。
- 常见错误:
ssh admin@192.168.1.100(未添加 -p)→ 无法连接,因为 SSH 服务并未监听 22 端口 - 正确写法:
ssh -p 2222 admin@192.168.1.100
调试连接问题可加 -v 参数
如果 SSH 连接不上,可以额外加上 -v(verbose)参数查看详细调试信息,便于排查问题出在哪一步:
- ssh -v -p 2222 admin@192.168.1.100
- 输出内容通常会显示地址是否解析成功、TCP 连接是否已发起、密钥交换是否正常开始等关键信息
