SecureCRT 连接 Ubuntu 失败排查与修复
一、快速判断与定位
- 先看报错关键词,按下面表格对号入座;若未命中,继续做网络与服务自检。
| 报错关键词 |
典型原因 |
处理要点 |
| 远程主机拒绝连接 / Connection refused |
Ubuntu 未安装或未启动 SSH 服务 |
安装并启动 openssh-server,确认服务在运行 |
| Hostname lookup failed / 找不到主机 |
主机名写错或无法解析 |
用 ifconfig 查 IP,直接在 SecureCRT 里填 IP |
| Permission denied / 登录账户或密码错误 |
用户名/密码错误,或 root 登录被限制 |
核对用户名与密码;必要时调整 sshd_config 的 PermitRootLogin 与 PasswordAuthentication |
| No compatible hostkey/key exchange method |
客户端与服务端算法不匹配 |
升级 SecureCRT;或在 /etc/ssh/sshd_config 增加兼容的 HostKeyAlgorithms / KexAlgorithms |
| 连接超时 |
网络不通、端口被防火墙拦截、虚拟机 NAT/桥接配置不当 |
互 ping 测试;核对 IP/端口 22;检查防火墙与虚拟网络模式 |
以上判断要点与处理方向可参考常见场景与配置建议。
二、Ubuntu 端必须确认的三件事
- 安装并启动 SSH 服务
- 安装:sudo apt-get update && sudo apt-get install openssh-server
- 状态:sudo systemctl status ssh(若未运行:sudo systemctl start ssh)
- 确认网络与端口可达
- 查 IP:ifconfig(或 ip a),确保 SecureCRT 填写的是 Ubuntu 的 IP
- 本机自检:ssh localhost(能连上说明本机 SSH 正常)
- 认证与登录限制
- 若用 root 登录被拒:编辑 /etc/ssh/sshd_config
- 将 PermitRootLogin prohibit-password 改为 PermitRootLogin yes
- 确保 PasswordAuthentication yes
- 如未设置过 root 密码:sudo passwd root
- 使配置生效:sudo systemctl restart ssh
以上步骤覆盖了“未装 SSH”“服务未起”“root 登录受限”等高频根因。
三、SecureCRT 侧设置与兼容性
- 新建会话要点
- 协议:SSH2
- 主机名:Ubuntu 的 IP
- 端口:22
- 用户名/密码:核对无误(注意区分 主机名 hostname 与 用户名)
- 算法不兼容时
- 升级到较新的 SecureCRT
- 或在 /etc/ssh/sshd_config 增加兼容项后重启 SSH:
- HostKeyAlgorithms=+ssh-rsa,ssh-dss
- KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
- 中文乱码
- SecureCRT:选项 → 会话选项 → 外观 → 字符编码设为 UTF-8
以上设置可解决“协议/算法不匹配”“编码不一致”等客户端侧问题。
四、虚拟机与网络环境专项排查
- 互 ping 测试
- Windows 执行 ipconfig,Ubuntu 执行 ifconfig,确认双方 IP 互通
- 防火墙与端口
- 临时关闭防火墙或放行 22 端口后再测(生产环境请按策略放行)
- 虚拟机网络模式
- 桥接:与宿主机同网段,最直观
- NAT:需确认端口转发规则正确;若频繁变动 IP,建议改用桥接或为虚拟机设置静态 IP
- IP 频繁变化导致超时
- 为虚拟机配置静态 IP,避免地址漂移造成连接失败
以上措施覆盖“网络不通”“端口被拦”“NAT/桥接配置不当”“IP 变动”等环境与网络层问题。