多台机器上无密码 ssh

多台机器上无密码 ssh

我对所有 ssh 安全的东西感到很困惑。我正在尝试重新配置一个目前因未知原因而损坏的系统。机器 A 是您在家时使用的个人计算机。机器 B 是 HPC 集群的头节点,所有其他机器 C 都是配置相同的机器,它们共享机器 B 的主目录。如果您还没猜到的话,这是一个 HPC 集群。我如何在任何节点 B 或 C 之间配置无密码 ssh。A 只能通过 ssh 进入 B 才能到达 C

答案1

  1. 配置从 A 到 B 的无密码。
  2. 启动 SSH 代理,将您的私钥加载到其中。
    • 如果你使用 GNOME,很可能它已经启动了代理。使用以下方法测试ssh-add -l
    • OpenSSH 用于eval ssh-agent启动代理并ssh-add加载密钥。
    • PuTTY 有 Pageant。
  3. 在您的 SSH 客户端中启用代理转发。
    • 在 OpenSSH 中,ssh -A ...为一次性配置,ForwardAgent~/.ssh/config为持久配置。将其放在Host machine_bHost *
    • PuTTY 有它连接 -> SSH -> 认证
  4. 从 A 连接到 B,并验证 B 是否可以访问您在 A 中加载的密钥。
    • ssh-add -l应该列出相同的键。
  5. 使用相同的密钥设置 C 以进行无密码身份验证。
    • 如果 B 和 C 共享主目录,则可能不需要 #5。
  6. 从 A 连接到 B 并通过 B 连接到 C。

答案2

不确定您是否要指定它仅当您来自 A 时才有效?

grawity 的答案可能在安全性方面更好,但这里有一个关于设置速度和/或从多个工作A的。。

总的来说……“机器 C 都是相同配置的机器,共享主目录机器 B”

ssh-keygen
ssh-copy-id localhost

或者...

ssh-keygen
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

这意味着 B 或 C 上的任何人...(或任何有权访问该主目录的 .ssh/ 的机器)都能够随意在它们之间进行 ssh,而我认为 grawity 要求您来自 A,并已适当地设置该机器。

相关内容