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

相关推荐
daad77711 分钟前
bitcoin HD钱包示例 真实使命7
运维·服务器
Eric.Lee202118 分钟前
查看ubuntu机器正在使用的网络端口
网络·ubuntu·php
Zero-Talent28 分钟前
TCP/IP协议
运维·服务器·网络
桌面运维家29 分钟前
Windows/Linux云桌面:高校VDisk方案部署指南
linux·运维·windows
Du_chong_huan32 分钟前
1.7 计算机网络和因特网的历史 | 《计算机网络:自顶向下方法》精读版
运维·服务器·网络
ZZZKKKRTSAE41 分钟前
rhel9快速上手Docker
运维·docker·容器
筱顾大牛42 分钟前
Docker安装教程(加汉化!超详细!!!)
运维·docker·容器
没头脑的男大44 分钟前
关于tailscale和ssh那些事儿
运维·服务器·ssh
竹之却1 小时前
OpenClaw 接入QQ-Bot + 接入Feishu(飞书)
运维·服务器·飞书·openclaw·qq-bot·opencalw接入qq+飞书
九成宫1 小时前
安装和配置Docker教程(装在其他盘)
运维·docker·容器