【SSH】ssh通过跳板机免密登录

💡简介
在日常运维中,ssh免密登录可以极大地提高效率,避免频繁输入密码的麻烦。本文将分享如何在两台服务器之间实现免密登录,尤其是通过跳板机实现两层转发的免密操作。
🖼️背景
场景:
- 有两台服务器,A作为跳板机,B作为主力机(其上有两个用户:
root
和user
)。 - 本机到A跳板机已实现免密,但每次从A连接到B仍需输入密码,尤其是
user
用户的免密配置遇到了较多问题。
目标:
- 实现从本机通过A跳板机到B服务器的
root
和user
用户的免密登录。
🧠思路
- 基础免密操作:通过
ssh-keygen
生成密钥对,并使用ssh-copy-id
上传到目标服务器。 - 两层转发免密:将密钥对拷贝到跳板机,在跳板机与目标服务器之间实现免密。
- 排查问题:针对
user
用户免密失败的问题,逐步排查权限和配置问题。
🔨解决
1. 基础免密操作
参考:CSDN教程
步骤:
- 在本地生成密钥对:
1
ssh-keygen -t rsa
- 将公钥上传到目标服务器:
1
ssh-copy-id user@A
2. 两层转发root
免密操作
参考:CSDN教程
步骤:
- 将本地生成的密钥对拷贝到跳板机A:
1
scp ~/.ssh/id_rsa* user@A:~/.ssh/
- 在跳板机A上,将公钥上传到目标服务器B的
root
用户:1
ssh-copy-id root@B
3. 两层转发user
免密操作
user
用户免密失败,最终发现是因为用户目录权限不正确。
解决:
- 确保
user
用户的home
目录及.ssh
文件夹权限正确:1
2
3
4chmod 700 /home/user
chmod 700 /home/user/.ssh
chmod 600 /home/user/.ssh/authorized_keys
chown -R user:user /home/user - 再次上传公钥并测试免密登录。
🏥反思
分而治之:
将复杂的三级关系(本机 -> A -> B)拆分为两个两级关系(本机 -> A,A -> B),逐步排查问题。查看报错技巧:
- 客户端:使用
ssh -vvv
查看连接过程中的详细日志。 - 服务端:修改
/etc/ssh/sshd_config
文件,开启LogLevel DEBUG
模式,监控/var/log/messages
或/var/log/secure
日志。
- 客户端:使用
- 希望这篇博客对你有帮助!如果你有任何问题或需要进一步的帮助,请随时提问。
- 如果你喜欢这篇文章,欢迎动动小手给我一个follow或star。
🗺参考文献
- 标题: 【SSH】ssh通过跳板机免密登录
- 作者: Fre5h1nd
- 创建于 : 2025-04-27 20:09:53
- 更新于 : 2025-04-27 20:24:50
- 链接: https://freshwlnd.github.io/2025/04/27/ssh-no-password/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论