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

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

Fre5h1nd Lv6

💡简介

在日常运维中,ssh免密登录可以极大地提高效率,避免频繁输入密码的麻烦。本文将分享如何在两台服务器之间实现免密登录,尤其是通过跳板机实现两层转发的免密操作。


🖼️背景

场景:

  • 有两台服务器,A作为跳板机,B作为主力机(其上有两个用户:rootuser)。
  • 本机到A跳板机已实现免密,但每次从A连接到B仍需输入密码,尤其是user用户的免密配置遇到了较多问题。

目标:

  • 实现从本机通过A跳板机到B服务器的rootuser用户的免密登录。

🧠思路

  1. 基础免密操作:通过ssh-keygen生成密钥对,并使用ssh-copy-id上传到目标服务器。
  2. 两层转发免密:将密钥对拷贝到跳板机,在跳板机与目标服务器之间实现免密。
  3. 排查问题:针对user用户免密失败的问题,逐步排查权限和配置问题。

🔨解决

1. 基础免密操作

参考:CSDN教程
步骤:

  1. 在本地生成密钥对:
    1
    ssh-keygen -t rsa
  2. 将公钥上传到目标服务器:
    1
    ssh-copy-id user@A

2. 两层转发root免密操作

参考:CSDN教程
步骤:

  1. 将本地生成的密钥对拷贝到跳板机A:
    1
    scp ~/.ssh/id_rsa* user@A:~/.ssh/
  2. 在跳板机A上,将公钥上传到目标服务器B的root用户:
    1
    ssh-copy-id root@B

3. 两层转发user免密操作

参考:知乎教程CSDN教程
问题:

  • user用户免密失败,最终发现是因为用户目录权限不正确。

解决:

  1. 确保user用户的home目录及.ssh文件夹权限正确:
    1
    2
    3
    4
    chmod 700 /home/user
    chmod 700 /home/user/.ssh
    chmod 600 /home/user/.ssh/authorized_keys
    chown -R user:user /home/user
  2. 再次上传公钥并测试免密登录。

🏥反思

  1. 分而治之
    将复杂的三级关系(本机 -> A -> B)拆分为两个两级关系(本机 -> A,A -> B),逐步排查问题。

  2. 查看报错技巧

    • 客户端:使用ssh -vvv查看连接过程中的详细日志。
    • 服务端:修改/etc/ssh/sshd_config文件,开启LogLevel DEBUG模式,监控/var/log/messages/var/log/secure日志。


  • 希望这篇博客对你有帮助!如果你有任何问题或需要进一步的帮助,请随时提问。
  • 如果你喜欢这篇文章,欢迎动动小手给我一个follow或star。

🗺参考文献

[1] CSDN教程 - 基础免密操作

[2] CSDN教程 - 两层转发root免密

[3] 知乎教程 - 两层转发user免密

[4] CSDN教程 - ssh排查技巧

[5] 博客园 - ssh排查技巧

  • 标题: 【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 进行许可。
评论