ssh 当您已经拥有多台机器时,无需密码即可登录

ssh 当您已经拥有多台机器时,无需密码即可登录

我对如何为多台机器设置无密码登录有点困惑,但我想我可以从头开始。问题是我已经为一台机器设置了它,我不想在尝试为另一台机器设置时把它弄乱。让我们澄清一下:

  • 机器A:我正在连接的机器
  • 机器:我正在连接的机器。 要求输入密码
  • 机器C:我正在连接的机器. 无密码 ssh

我读过一些关于设置无密码 ssh 到某个网站的教程,但它们通常以“移开id_rsa以免被吹走”开始,但在教程结束时它并没有移回原位。如果我完全没有帮助,我会这样做:

  1. 登录到
  2. ssh-keygen -t rsa -f ~/id_rsa.other
  3. scp id_rsa.other.pub A:~/.ssh
  4. echo "Host A \n Identity File ~/.ssh/id_rsa.other" > ~/.ssh/config

(请注意,我意识到这些命令可能不完全正确,但这只是想法)。

我不太清楚的是,我是否需要更新配置A或两者兼而有之。我相当确定可以从A, 这是A这需要公钥..但我想我也需要使用id_rsa该公钥的正确文件。最后,我不希望C完全受到影响。它正在使用id_rsa。我哪里做错了吗?

答案1

听起来你正在连接A或者AC,对吧?(不是A进而C

如果是这样,那么你需要将你的 id_rsa.pub 复制到以及C

~/.ssh/config如果您不使用标准文件,则需要修改序列中步骤 4 中的文件~/.ssh/authorized_keys

以下是我要做的事情(生成 id_rsa 和 id_rsa.pub 之后)...

  1. 将 id_rsa.pub(使用 scp,使用密码提示)复制到 B 和 C
  2. 登录 B -mv id_rsa.pub ~/.ssh/authorized_keys
  3. 登录 C -mv id_rsa.pub ~/.ssh/authorized_keys

私钥保存在A. 您可以使用相同的私钥/公钥组合连接多台机器。

如果由于某种原因,你拥有用户的多个公钥或者C,您可以将它们附加到文件末尾authorized_keys

答案2

我终于设计出了一种方便的方法来设置多个节点的无密码 ssh。使用这些脚本已经有一段时间了,到目前为止对我来说一直很完美。希望它能帮助人们节省时间。我相信这种机制可以在几分钟内同时运行几百个节点。它基于 expect 和 bash 脚本。看看它,让我知道你的反馈。脚本链接 -http://adhocshare.tk/linux/setting-password-less-ssh-across-nodes-cluster/

如果您以前使用过 ssh-keygen 和 ssh-copy-id,那么脚本中的整体思路是使用 pdsh 和包含主机名的文件在所有节点上同时自动执行该任务。几乎所有操作都是自动化的,将为您节省大量时间。让我知道这对您有何帮助。我非常乐意为您提供帮助。

相关内容