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

相关推荐
爱写代码的森6 小时前
鸿蒙三方库 | harmony-utils之ImageUtil图片保存到本地详解
服务器·华为·harmonyos·鸿蒙·huawei
REDcker7 小时前
显示分辨率标准对照详解
前端·网络·分辨率·显示·屏幕
大耳朵-小飞象8 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
ANSIOT8 小时前
安朔科技蓝牙无感开锁方案,靠近自动解锁
网络·科技·物联网
极客侃科技9 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
晏宁科技YaningAI9 小时前
VoIP系统的工程实现模型:从信令控制到媒体传输的完整架构解析
网络·人工智能·架构·系统架构·信息与通信
HLC++9 小时前
Linux的进程间通信
android·linux·服务器
白露与泡影11 小时前
Arthas 实战指南:从方法耗时定位到 JVM 变量热修改
服务器·jvm·c#
神奇霸王龙12 小时前
Claude Code屠榜:MiMo与Grok紧追Codex
服务器·网络·人工智能·gpt·ai·ai编程
Web极客码12 小时前
WordPress SEO优化:提升网站排名的13个关键步骤
服务器·seo·wordpress