Xshell SSH 连接故障排查

Xshell SSH 连接故障排查详解

本文整理了 Xshell SSH 典型故障排查指南,涵盖连接超时、连接被拒绝、密码和密钥认证失败、算法兼容性等常见问题,并提供详细排查步骤和解决方法。


1. SSH 连接超时(Connection Timed Out)

1.1 常见原因

  1. 服务器未开机或 SSH 服务未启动
  2. IP 地址或端口号错误
  3. 防火墙/安全组未放行 SSH 默认端口 22
  4. 网络不通(路由、防火墙、VLAN 隔离)
  5. VPN 或代理影响

1.2 排查步骤

  1. 测试网络连通性
bash 复制代码
ping 服务器IP
traceroute 服务器IP
  1. 确认 SSH 服务状态
bash 复制代码
systemctl status sshd
  1. 检查端口监听
bash 复制代码
ss -lntp | grep 22
  1. 查看防火墙状态
bash 复制代码
firewall-cmd --list-all
iptables -L -n
  1. 云服务器安全组检查:确保入站规则允许 22 端口访问

1.3 解决方案

  • 启动 SSH 服务:systemctl start sshd
  • 放行端口:firewall-cmd --add-service=ssh --permanent && firewall-cmd --reload

2. 连接被拒绝(Connection Refused)

2.1 常见原因

  • SSH 服务未启动或异常
  • SSH 端口被修改但客户端未同步
  • TCP Wrapper 拒绝连接

2.2 排查方法

bash 复制代码
cat /etc/ssh/sshd_config | grep Port
systemctl restart sshd
  • 确认端口号是否与 Xshell 会话一致
  • 查看 /etc/hosts.allow/etc/hosts.deny 是否限制

2.3 解决方法

  • 启动或重启 SSH 服务
  • 修改 TCP Wrapper 配置允许访问

3. 用户名或密码错误(Access Denied)

3.1 常见原因

  • 用户名拼写错误
  • 密码错误或账号被锁定
  • root 用户禁止远程登录

3.2 排查方式

bash 复制代码
passwd -S 用户名    # 查看账号状态
cat /etc/ssh/sshd_config | grep PermitRootLogin

3.3 解决方案

  • 解锁用户:passwd -u 用户名
  • 临时允许 root 登录(生产环境慎用)
bash 复制代码
vim /etc/ssh/sshd_config
PermitRootLogin yes
systemctl restart sshd

4. 密钥认证失败(Publickey Authentication Failed)

4.1 常见原因

  • 私钥文件格式或内容错误
  • 公钥未正确添加至服务器 ~/.ssh/authorized_keys
  • 权限设置不符合 SSH 要求

4.2 正确权限设置

bash 复制代码
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

4.3 Xshell 配置检查

  • 用户身份验证 → Public Key
  • 私钥格式需为 .pem 或 Xshell 生成的 .key
  • 确认密钥对应正确的用户

4.4 进阶排查

bash 复制代码
ssh -vvv 用户名@服务器IP   # 查看详细连接日志

可帮助定位认证失败的具体原因(密钥不匹配、权限错误等)


5. 算法不兼容(No matching key exchange method)

5.1 常见场景

  • 新版 Xshell 连接老旧系统(如 CentOS 6)
  • 客户端默认加密算法不被服务器支持

5.2 解决方法(Xshell)

  • 会话属性 → SSH → 加密
  • 勾选 diffie-hellman-group1-sha1 或其他兼容算法

6. 连接卡死但无报错

6.1 可能原因

  • MTU 不匹配导致分片丢包
  • DNS 解析阻塞
  • 防火墙限制 ICMP

6.2 解决方案

bash 复制代码
echo 'UseDNS no' >> /etc/ssh/sshd_config
systemctl restart sshd
  • 在 Xshell 中使用 IP 直接连接绕过 DNS

7. 快速自检清单

  1. IP 是否正确
  2. 端口是否开放
  3. SSH 服务是否运行
  4. 防火墙/安全组是否放行
  5. 用户名/密码是否正确
  6. 公钥是否配置正确
  7. 权限是否符合要求
  8. 算法是否兼容
  9. 使用 ssh -vvv 查看调试信息

8. 总结

SSH 连接故障排查应遵循 网络 → 服务 → 用户认证 → 客户端配置 的顺序,逐层排查,可快速解决大部分 Xshell 连接异常问题。

相关推荐
前端程序猿i12 小时前
Nginx 教程:从入门到能上线
运维·nginx
AskHarries12 小时前
权限模型:Shell、Browser、文件读写的安全边界
服务器·前端·网络
木雷坞12 小时前
Qdrant Docker 部署教程:数据卷、API Key 和集合初始化
运维·docker·容器·知识图谱
咖啡星人k12 小时前
MonkeyCode 网络架构:WebSocket、SSE与实时协作的技术选型
网络·websocket·架构·monkeycode
团象科技12 小时前
外贸站选海外服务器 拆解跨境运营中常被忽略的核心性能细节
运维·服务器
Lv_沐曦13 小时前
银河麒麟桌面版安装、多屏配置、触摸校准
运维·docker·samba·vsftpd·银河麒麟·触控校准·多屏配置
AI帮小忙13 小时前
主机安全排查
linux·服务器·安全
稷下元歌13 小时前
七天学会plc 加机器视觉完整笔记:S7-1200 数据类型、存储区与寻址方式(I/Q/M/DB 详解)。
网络·数据库·笔记
半壶清水13 小时前
ubuntu下利用ns-3 + NetAnim搭建可视化路由选路过程的方法
linux·运维·ubuntu
liulilittle14 小时前
bpftrace 跟踪 tcp_write_xmit (内核TCP写出提交)
网络·网络协议·tcp/ip