You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSH无明显原因连接卡住,求助VPS访问修复方案

SSH连接无响应/中断问题的排查修复思路

先结合你提供的日志分析下:第一次连接卡在本地版本字符串发送后,第二次走到SSH2_MSG_KEXINIT sent就断开,说明TCP连接能正常建立,但在密钥交换阶段出现了异常——大概率不是网络连通性问题,而是服务器端sshd配置/状态异常,或者客户端与服务器的算法协商不兼容。

下面给你几个可行的解决方向,按优先级排序:

1. 优先使用VPS服务商的Web控制台/救援模式

这是最关键的一步,毕竟你现在没法SSH登录,服务商提供的网页控制台(比如KVM/IPMI控制台)是绕开SSH直接访问系统的唯一途径:

  • 登录Web控制台后,先检查sshd服务状态:
    sudo systemctl status sshd
    
    看服务是否在运行,有没有启动失败的报错信息。
  • 查看sshd的详细日志,定位故障原因:
    sudo tail -n 50 /var/log/auth.log
    
    重点找errorfailed这类关键词,比如配置文件语法错误、密钥文件权限问题、系统资源不足导致服务崩溃等。
  • 如果Web控制台也无法连接,直接启用服务商的救援模式(Rescue Mode),挂载系统盘后可以修改sshd配置文件、修复系统问题,比如用sshd -t检测/etc/ssh/sshd_config的合法性。

2. 客户端侧临时调整参数尝试绕过问题

在等待Web控制台/救援模式的同时,可以试试这些客户端参数调整,说不定能临时连上:

  • 强制指定旧版密钥交换算法,适配服务器的OpenSSH 7.2版本:
    ssh -o KexAlgorithms=diffie-hellman-group1-sha1 mary@198.143.181.104
    
  • 开启心跳检测并关闭TCP保活,避免连接被中间设备断开:
    ssh -o TCPKeepAlive=no -o ServerAliveInterval=30 mary@198.143.181.104
    
  • 尝试降低MTU值,排除路径MTU不匹配导致的数据包丢失:
    ssh -o MTU=1400 mary@198.143.181.104
    
  • 如果之前开启过密码登录,强制使用密码认证:
    ssh -o PreferredAuthentications=password mary@198.143.181.104
    

3. 服务器端常见故障排查(通过Web控制台)

如果能登录Web控制台,重点排查这些点:

  • 系统资源耗尽:用free -h看内存是否占满,top看CPU负载,OOM Killer可能会杀掉sshd进程,导致无法响应连接。
  • 防火墙规则异常:Ubuntu默认用ufw,执行sudo ufw status检查22端口是否允许;如果用iptables,执行sudo iptables -L看有没有封禁22端口的规则。
  • sshd配置错误:用sudo sshd -t检测配置文件是否有语法错误,比如最近修改过sshd_config但没生效,或者自动更新后配置被覆盖。
  • 系统更新导致的兼容性问题:执行cat /var/log/dpkg.log | grep ssh看最近是否更新了openssh-server,有的话可以尝试回滚到之前的版本。

内容的提问来源于stack exchange,提问作者HappyFace

火山引擎 最新活动