我在某处读到,要通过 SSH 访问远程计算机,我们需要将~/.ssh/id_rsa.pub
本地计算机复制到~/.ssh/authorized_keys
远程计算机。我这样做了,我可以通过 ssh 访问远程计算机。
我希望远程机器可以从多个服务器访问,例如:机器 A 可以访问机器 B,并且另一台机器 C 也可以访问机器 B。
我将~/.ssh/id_rsa.pub
机器 A 复制到~/.ssh/authorized_keys
机器 B,并且可以访问机器 B。
但我还想从机器 C 访问机器 B,那么我该怎么办?我的意思是,我应该将~/.ssh/id_rsa.pub
机器 C 复制到机器 B 的哪里,以便我可以从机器 C 访问机器 B?
答案1
远程主机上的文件authorized_keys
可以包含多个公钥。只需将它们附加到文件中即可 — 确保每个密钥都占一行。
为了简化这个过程,ssh-copy-id(1)
。
ssh-copy-id user@machine-B
您可以在机器 C 上执行上述命令。它会将默认公钥复制到机器 B 并自动将其附加到。如果您愿意,authorized_keys
您还可以使用该选项指定要复制的另一个公钥。-i
这是参考在手册中:
用户通过运行 来创建自己的密钥对。这会将私钥存储在用户主目录中的
ssh-keygen(1)
[…] (协议 2 RSA)。然后,用户应将公钥复制到远程计算机上自己的主目录中。~/.ssh/id_rsa.pub
~/.ssh/authorized_keys
文件
authorized_keys
[…] 每行都有一个密钥,尽管行数可能很长。此后,用户无需输入密码即可登录。
答案2
或者,您可以运行此命令:
cat id_rsa.pub | ssh remote-user@remote-host "cat >>~/.ssh/authorized_keys"
为了附加到 authorized_keys 文件