我在两台机器上都有帐户:H1 和 H2。我在 H1 上创建了 ssh 密钥并将其安装在 S1 上。我现在可以从 H1 ssh 到 S1。我想从 H2 执行相同操作。如何在 H2 上安装 H1 上生成的 ssh 密钥?
答案1
編輯:如果你拥有这两台机器,你可以共享你的私钥。但是这个解决方案不安全以防笔记本被盗或您不拥有的机器。
如果您想使用相同的私钥从 H2 登录到 S1,您可以将私钥从 H1 复制到 H2。当您在 H1 时,请执行以下命令:
H1$ ssh H2 mkdir ~/.ssh
H1$ scp ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/
警告!这将删除并替换您在 H2 上拥有的任何私钥。
更好的方法是在 H2 上生成新的私钥(ssh-keygen
)并在 S1 上安装它们的公共部分ssh-copy-id
util。在这种更安全的情况下,您将拥有两组密钥;一组用于 H1-S1 登录,另一组用于 H2-S1 登录。S1 将授权两个公钥。并且您将能够撤销其中任何一个或两个(例如,当您的笔记本被盗时,或者机器的所有者决定禁用您的帐户并重新使用您的所有文件时)。
答案2
使用ssh-copy-id
概要
ssh-copy-id [-i [identity_file]] [用户@]机器
描述
ssh-copy-id 是一个使用 ssh 登录远程机器并将指示的身份文件附加到该机器的 ~/.ssh/authorized_keys 文件的脚本。
答案3
使用两个私钥
使用相同的过程设置 H2(但不是与设置 H1 时使用的私钥相同:
- 从其他机器复制私钥永远是没有充分理由的。如果您尚未在 H2 上生成新的私钥,请立即生成。还要生成相应的公钥。在 H2 上的终端中,
类型:ssh-keygen -t rsa
- 将 H2 的公钥复制到服务器。在 H2 的终端中,
类型:ssh-copy-id [email protected]
(但在 S1 和 S1 的主机名上使用您的实际用户名,然后在 S1 要求输入密码时输入您的密码)。
这会将您的工作站的公钥安装到~/.ssh/authorized_keys
服务器上该用户的文件中。
- 没有第 3 步。从现在开始,您可以从 H2 登录 S1,也可以从 H1 登录 S1。
细节
我认为你真正想问的是
- 我有一台服务器(“S1”)
- 我从我的个人笔记本电脑(“H1”)登录到我的服务器
- 我还想从我的工作站(“H2”)登录到我的服务器。
正确的做法是什么?
- 我想我可以用相同的密码在两个地方登录。但那可能不是正确的方法,因为每个人都说公钥认证比密码好得多。(A)
- 我想我可以直接将私钥从笔记本电脑复制到工作站。但这不是正确的方法,因为每个人都说私钥永远不应该离开客户端计算机。
人们已经深知,服务器上的一个帐户只有一个用户名,当然还有一个授权密码。
ssh 之类的公钥系统比密码系统更好:服务器上的一个帐户只有一个用户名,任意数量的授权公钥,所有这些都列在~/.ssh/authorized_keys
文件中。
(更多细节)。