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

相关推荐
向生2 小时前
FRP 0.61.0 完整保姆级部署教程
运维
2401_894915532 小时前
Geo 优化源码部署实战:环境配置、参数调优完整指南
运维·服务器·数据库·tcp/ip·安全
肠畔码农2 小时前
Redis 主从复制内核深潜:从物理模型到全量增量同步的本质
网络·redis·php
爱和冰阔落3 小时前
【Linux】Ctrl+C 到底做了什么?从键盘、kill 到 alarm,一次讲清信号的产生
linux·运维·c++·安卓
CDN3604 小时前
360CDN发布HTTP/3(QUIC)弱网加速方案:实测首屏提速40%,彻底终结移动端接口超时与频繁断连
网络·网络协议·http
JavaPub-rodert4 小时前
Linux 下部署 MongoDB:从安装、配置到生产环境使用
linux·运维·mongodb
随风而飘1864 小时前
安立(Anritsu)MT8820C无线综合测试仪(手机综测仪)
网络·功能测试·测试工具·5g·智能手机
辻弋2014 小时前
一键优化电源计划、游戏模式、独显强制、禁用后台录制——DeltaForceBooster专治三角洲行动卡顿掉帧,所有改动可一键还原
服务器·数据库·windows·游戏·电脑·php
SWAGGY..4 小时前
【C++ 初阶】:(12)深入理解C++ stack:容器适配器、底层容器与算法实战
网络·网络协议·rpc
xcLeigh4 小时前
Go入门:基本数据类型全览与选择指南
android·服务器·golang·教程·go热门