**问题:**
在使用 Termius 通过 SSH 密钥登录远程服务器时,经常遇到密钥登录失败的问题,常见的原因有哪些?如何逐一排查和解决?
1条回答 默认 最新
Jiangzhoujiao 2025-07-21 09:50关注一、问题背景与初步分析
在使用 Termius 通过 SSH 密钥登录远程服务器时,遇到密钥登录失败是一个较为常见的问题。其背后可能涉及多个层面的因素,包括本地配置、密钥格式、权限设置、远程服务器配置等。
对于有5年以上经验的IT从业者来说,虽然对SSH机制较为熟悉,但在面对具体工具(如Termius)和环境差异时,仍需系统性地进行排查。
二、常见原因分类与排查流程
以下是导致 Termius 无法通过 SSH 密钥登录的常见原因,按从浅入深的顺序进行分析:
- 本地密钥路径配置错误
- 密钥格式不兼容(如 OpenSSH vs PuTTY)
- 密钥权限设置不当
- 远程服务器未正确添加公钥至
~/.ssh/authorized_keys - SSH服务未启用密钥登录(
PasswordAuthentication、PubkeyAuthentication) - Termius 配置中未启用 SSH Agent 或使用了错误的代理
- SSH 协议版本不兼容或加密算法不匹配
- 使用了加密的私钥但未输入正确密码
- Termius 本地缓存错误或配置文件损坏
- 防火墙或中间网络设备拦截连接
三、详细排查步骤与解决方案
1. 检查密钥路径是否正确配置
- 在 Termius 中打开目标主机配置,确认
Identity File指向正确的私钥文件(如~/.ssh/id_rsa) - 确保文件路径在 Termius 中为绝对路径
2. 验证密钥格式是否兼容
Termius 支持 OpenSSH 格式的密钥,若使用 PuTTY 生成的
.ppk文件,需转换格式:puttygen id_rsa.ppk -O private-openssh -o id_rsa3. 检查密钥文件权限
文件 推荐权限 ~/.ssh 目录 700 ~/.ssh/id_rsa(私钥) 600 ~/.ssh/authorized_keys 600 4. 确认远程服务器已添加公钥
将本地公钥内容追加到远程服务器的
~/.ssh/authorized_keys中:cat ~/.ssh/id_rsa.pub | ssh user@remote "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"5. 检查 SSH 服务配置是否启用密钥登录
登录远程服务器,检查
/etc/ssh/sshd_config中的配置项:PubkeyAuthentication yes PasswordAuthentication no AuthorizedKeysFile %h/.ssh/authorized_keys修改后重启 SSH 服务:
sudo systemctl restart sshd6. 确保 Termius 启用了 SSH Agent
在 Termius 设置中,启用内置的 SSH Agent 并加载私钥,避免每次手动选择密钥文件。
7. 使用命令行测试连接
使用 OpenSSH 命令行测试连接,排除 Termius 自身问题:
ssh -i ~/.ssh/id_rsa user@remote若命令行也无法连接,说明是密钥或服务器配置问题。
8. 查看 SSH 日志进行深入排查
在远程服务器上查看日志:
sudo tail -f /var/log/auth.log尝试连接时,观察是否有类似
Authentication refused: bad ownership or modes for file的提示。9. 检查 Termius 缓存与配置文件
清除 Termius 的缓存或尝试重装应用,确保配置未被损坏。
10. 使用 Mermaid 流程图展示排查逻辑
```mermaid graph TD A[开始] --> B{Termius配置密钥路径正确?} B -- 否 --> C[修改密钥路径] B -- 是 --> D{密钥格式是否OpenSSH?} D -- 否 --> E[转换密钥格式] D -- 是 --> F{密钥权限是否正确?} F -- 否 --> G[调整权限] F -- 是 --> H{公钥是否添加到远程?} H -- 否 --> I[添加公钥] H -- 是 --> J{SSH服务配置是否启用密钥登录?} J -- 否 --> K[修改sshd_config] J -- 是 --> L{命令行测试是否成功?} L -- 否 --> M[查看/var/log/auth.log] L -- 是 --> N[Termius缓存问题] N --> O[清除缓存或重装Termius] ```本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报