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 连接异常问题。

相关推荐
遇见火星1 分钟前
Nginx限流配置:防止接口被刷,服务器稳如泰山
运维·服务器·nginx
计算机安禾14 分钟前
【Linux从入门到精通】第49篇:服务器故障排查终极指南——思路决定出路
linux·运维·服务器
古月-一个C++方向的小白15 分钟前
Linux——初识文件
linux·运维·服务器
北山有鸟33 分钟前
编译香橙派内核
linux·运维·服务器
W.A委员会34 分钟前
Docker基本使用流程
运维·docker·容器
段一凡-华北理工大学40 分钟前
【高炉炼铁领域炉温监测、预警、调控智能体设计与应用】~系列文章06:智能决策:从经验驱动到数据驱动
网络·人工智能·数据挖掘·高炉炼铁·工业智能体·高炉炉温
小此方40 分钟前
Re:Linux系统篇(八)权限篇 ·三:深度解析从 umask 位运算到粘滞位的“权力锁”
linux·运维·服务器
晨曦夜月1 小时前
进程的五大状态及特殊进程解析
linux·服务器·算法
Sarvartha2 小时前
三目运算符
linux·服务器·前端
liangdabiao2 小时前
乐高摩托车深度报告-致敬张雪夺冠 -基于llm-wiki技术自动化写文章的效果
运维·人工智能·自动化