Termius 中文文档 下载 App

Termius 无法连接主机排查 | 超时、拒绝、密钥不匹配、Palo Alto 特殊情况

通用排查顺序

SSH 连接失败的原因分两层——服务器端和 Termius 客户端。90% 的问题是服务器端的,别先在 Termius 里瞎调。

顺序:从服务器端往外层查。

1. 服务器 sshd 服务在运行吗?
2. 服务器防火墙放行 SSH 端口了吗?
3. 服务器密钥配置正确吗(authorized_keys)?
4. 中间网络路由可达吗?
5. Termius 客户端配置匹配吗?

服务器端检查清单

sshd 服务状态

# systemd 系统(Debian 10+ / Ubuntu 18+ / CentOS 7+)
sudo systemctl status sshd
# Debian / Ubuntu 可能叫 ssh,不是 sshd
sudo systemctl status ssh

# 传统 init 系统
sudo service ssh status

# 确认 22 端口在监听
sudo ss -tlnp | grep :22
# 或
sudo netstat -tlnp | grep :22

sshd 没运行? → sudo systemctl start sshd && sudo systemctl enable sshd

没在监听 22 端口? → 检查 /etc/ssh/sshd_config 的 Port 设置(可能用了非标准端口)

服务器防火墙

# firewalld(CentOS / RHEL 7+)
sudo firewall-cmd --list-all
# 应该看到 22/tcp 或自定义 SSH 端口

# ufw(Ubuntu / Debian)
sudo ufw status
# 应该看到 SSH 是 Allow

# iptables
sudo iptables -L -n | grep 22

防火墙没放行? → 开对应的端口(注意服务器可能用了非标准 SSH 端口)

服务器端 SSH 配置

检查 /etc/ssh/sshd_config 的关键配置:

# 密码认证是否开启
grep PasswordAuthentication /etc/ssh/sshd_config
# 应该是 yes(如果用密码登录)

# root 登录是否允许
grep PermitRootLogin /etc/ssh/sshd_config
# 如果用 root 登录必须是 yes

# 密钥认证是否开启
grep PubkeyAuthentication /etc/ssh/sshd_config
# 应该是 yes

# 允许的登录用户
grep AllowUsers /etc/ssh/sshd_config
grep DenyUsers /etc/ssh/sshd_config
# 如果有 AllowUsers,确认你的用户在里面

# 修改后重启 sshd
sudo systemctl restart sshd

authorized_keys 文件

密钥认证失败时,检查:

# 1. authorized_keys 文件存在且权限正确
ls -la ~/.ssh/
# drwx------ .ssh 目录(700)
# -rw------- authorized_keys(600)

# 2. 公钥确实在里面
cat ~/.ssh/authorized_keys
# 应该有一整行 ssh-ed25519 / ssh-rsa 开头的公钥

# 3. 公钥和 Termius 里用的是同一个
# 在 Termius Keys 里找到对应密钥 → 右键 → Copy Public Key → 对比服务器上的内容

网络连通性

客户端测试

从你 Termius 所在的电脑,用终端(不是 Termius) 测试网络:

# 测试 IP 连通
ping <服务器IP>

# 测试端口连通
nc -zv <服务器IP> <SSH端口>
# 或
telnet <服务器IP> <SSH端口>
# 如果 nc / telnet 超时或被拒绝,不是 Termius 的问题,是网络不通

# 测试路由
traceroute <服务器IP>
# 看路由在哪一跳断的

如果网络层不通,检查:

移动网络特别注意

Termius 客户端检查

排除了服务器和网络问题,再看 Termius 端:

主机配置逐项核对

字段检查
Host(IP / 域名)和服务器实际值对得上吗?
Port服务器 sshd_config 里的端口是多少?默认 22 但可能改过
Username大小写对吗?root / admin / ubuntu
ProtocolSSH / SFTP / Mosh 选对了吗?
Identity密码 / 密钥选对了吗?密钥在 Termius 里导入了吗?
Jump Host有跳板机配置吗?跳板机本身能连吗?

终端里直接用 ssh 命令测试

用你电脑自带的 SSH 客户端(不是 Termius)测试:

ssh -v user@server.example.com -p 22

加 -v 参数会输出详细握手过程:

Known Hosts 冲突

如果服务器换了密钥(比如重装了系统),Termius 会拒绝连接:

特殊情况

Palo Alto 网络设备

Palo Alto 的某些型号在 SSH 身份认证通过后会立即断开,显示类似「Please login using a valid account」的错误。

原因: 这些设备用的是 exec channel 的认证,和 Termius 的 Shell 集成(Autocomplete、导入历史、自动检测 OS)冲突。

解法: 禁用依赖 exec channel 的功能:

关掉这些功能后,密码认证就能正常工作了。

Mosh 连接问题

本地 / 局域网连接问题(iOS / macOS)

iOS / macOS 连接本地设备的特别检查:

终极手段

所有都试过还不行:

  1. 重启 Termius(不重启整个电脑,先 App 内部完全退出重开)
  2. 清 Vaults 缓存(设置 → Troubleshooting → Clear Cache)
  3. 重新导入密钥、重建主机配置(可能配置文件损坏)
  4. 提交 Termius 支持请求,带上诊断日志

继续「常见问题汇总」。