Ubuntu 上 SecureCRT 连接超时的排查与解决
一 快速判断与优先检查
- 确认目标主机已安装并运行 OpenSSH 服务,且监听 22 端口:
- 安装:sudo apt-get update && sudo apt-get install openssh-server
- 启动/查看状态:sudo service ssh start;sudo service ssh status
- 检查本机与服务器的 IP 连通性(先在同一网段能互相 ping 通),以及服务器防火墙是否放行 22 端口:
- UFW:sudo ufw status;如未放行可执行 sudo ufw allow ssh
- 若使用虚拟机(VMware/VirtualBox),优先使用 NAT 或 桥接 并确保虚拟网卡(如 VMnet8)与虚拟机 IP 在同一网段;若主机能 ping 通虚拟机而虚拟机 ping 不通主机,常见原因是 VMnet8 网段被修改,需将 VMnet8 的 IPv4 调整到与虚拟机一致网段后重试。
二 常见原因与对应修复
- 服务器未安装或未启动 SSH 服务:安装并启动 openssh-server,确认服务处于运行状态后再连接。
- 防火墙/安全组阻断 22 端口:在 Ubuntu 启用 UFW 放行 SSH,或在云平台安全组放行入站 TCP/22。
- 虚拟机网络模式或网段不一致:使用 NAT/桥接 并在 VMware/VirtualBox 中核对 VMnet8 与虚拟机 IP 网段一致,必要时修正 VMnet8 的 IPv4 地址。
- 服务器主动断开(空闲超时):在服务器启用保活或在客户端开启反空闲,见下文“保持连接不断开”。
- 客户端/服务器算法不兼容:升级 SecureCRT 或在服务器侧调整 SSH 配置以兼容更多密钥交换/加密算法。
三 保持连接不断开
- 服务器端开启保活(推荐):编辑 /etc/ssh/sshd_config,设置
- ClientAliveInterval 50(每 50 秒发一次保活)
- ClientAliveCountMax 3(最多连续 3 次无响应则断开)
- 保存后重启 SSH:sudo service ssh restart
- 客户端开启反空闲(SecureCRT):Session Options → Terminal → Anti-idle → 勾选“Send string”,例如发送 \n,间隔 60 秒;如需全局生效,在 Global Options → Default Session 中编辑默认设置。
四 SecureCRT 会话与兼容性设置
- 协议与端口:Session Options → Connection → Protocol 选 SSH2,端口 22;必要时在 Connection → Send protocol NO-OP 启用协议级保活。
- 认证方式:优先使用 SSH 密钥(Session Options → SSH2 → PublicKey → 导入私钥),更安全且可避免交互导致的超时。
- 兼容性:若出现 “Key exchange failed/No compatible key exchange method”,升级 SecureCRT 或在服务器侧调整 SSH 配置以支持更多密钥交换方法。
五 最小化连通性测试流程
- 在 Ubuntu 上:ip a 查看 IP;sudo service ssh status 确认 SSH 运行;sudo ufw status 确认 22 放行。
- 从客户端:ping 目标 IP;若通,执行 ssh user@IP -p 22 验证;仍失败时,用 sudo netstat -tulpen | grep :22 确认端口监听,并检查云平台安全组/本机防火墙。
- 虚拟机场景:确认 NAT/桥接 模式与 VMnet8 网段一致;必要时修正 VMnet8 的 IPv4 后复测。