OS X环境下修改VPS SSH配置后无法连接,请求技术排查
解决SSH连接VPS失败的问题
先把你的操作背景和调试信息整理清楚:
你之前修改了VPS的/etc/ssh/sshd_config,更换了SSH端口并设置PasswordAuthentication no,之后在OS X终端执行连接命令后出现了连接中断的情况,调试输出如下:
$ ssh -vp xxxx root@xx.xxx.xxx.xx OpenSSH_6.9p1, LibreSSL 2.1.8 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 20: Applying options for * debug1: /etc/ssh/ssh_config line 53: Applying options for * debug1: Connecting to xx.xxx.xxx.xx [xx.xxx.xxx.xx] port xxxx. debug1: Connection establ...
从你的操作和输出来看,问题大概率出在端口未开放或者密钥认证配置缺失上,我给你一步步排查解决的方案:
1. 先确认目标端口是否可达
你更换了SSH端口为xxxx,首先要确保这个端口在VPS和云服务商层面都被放行:
- 本地用
nc -zv xx.xxx.xxx.xx xxxx或者telnet xx.xxx.xxx.xx xxxx测试端口连通性,如果提示Connection refused或者超时,说明端口没开:- 登录VPS的Web控制台(比如云服务商提供的实例终端),检查防火墙规则:
- Ubuntu/Debian系统执行
ufw status,CentOS/RHEL系统执行firewall-cmd --list-ports,查看是否开放了xxxx/tcp端口;没开的话添加规则:ufw allow xxxx/tcp或者firewall-cmd --add-port=xxxx/tcp --permanent && firewall-cmd --reload - 还要检查云服务商的安全组规则,确保入方向允许
xxxx/tcp端口的流量通过
- Ubuntu/Debian系统执行
- 登录VPS的Web控制台(比如云服务商提供的实例终端),检查防火墙规则:
2. 修复密钥认证配置(因为你关闭了密码登录)
你设置了PasswordAuthentication no,意味着必须用SSH密钥登录,如果之前没把本地公钥传到VPS的~/.ssh/authorized_keys里,肯定连不上:
- 先通过Web控制台登录VPS,临时开启密码登录:
- 编辑
/etc/ssh/sshd_config,把PasswordAuthentication no改成PasswordAuthentication yes - 重启SSH服务:
systemctl restart sshd(systemd系统)或者service ssh restart(老版本系统)
- 编辑
- 本地重新用密码连接:
ssh -p xxxx root@xx.xxx.xxx.xx,登录成功后,把本地公钥传到VPS:- 本地执行
ssh-copy-id -p xxxx root@xx.xxx.xxx.xx(如果没有这个命令,就手动复制~/.ssh/id_rsa.pub的内容到VPS的~/.ssh/authorized_keys里,注意把文件权限设为600:chmod 600 ~/.ssh/authorized_keys)
- 本地执行
- 确认密钥可以正常登录后,再把
PasswordAuthentication改回no,重启SSH服务
3. 检查SSH服务的状态和配置合法性
如果端口和密钥都没问题,就检查SSH服务本身:
- 在VPS上执行
sshd -t,验证配置文件是否有语法错误,如果有错误会直接提示,比如端口号是否在1-65535范围内,有没有拼写错误的配置项 - 查看SSH服务日志:
journalctl -u sshd(systemd系统)或者cat /var/log/auth.log(Debian/Ubuntu),看有没有连接失败的具体错误信息,比如“Failed publickey for root from ...”这类提示,能帮你精准定位密钥问题
4. 本地SSH配置排查
偶尔本地的SSH配置也会出问题,你可以尝试跳过本地配置的影响:
- 执行
ssh -F /dev/null -vp xxxx root@xx.xxx.xxx.xx,用空配置文件连接,看看是否能正常建立连接;如果可以,说明本地/etc/ssh/ssh_config里有冲突的配置项,需要检查修改
内容的提问来源于stack exchange,提问作者user163831
相关产品推荐
相关产品推荐

