如何将我的 SSH 密钥转移到另一台机器?

如何将我的 SSH 密钥转移到另一台机器?

我在两台机器上都有帐户: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-idutil。在这种更安全的情况下,您将拥有两组密钥;一组用于 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文件中。

更多细节)。

答案4

将 SSH 密钥从一台计算机转移到另一台计算机。只需将 H1(旧机器)的 ~/.ssh 的整个文件夹复制到新机器 H2 的 ~/.ssh 内容文件夹即可。

现在尝试:

远程控制[电子邮件保护](你的 S1 IP)

最有可能的是,你会收到一个权限警告来修复该运行:

chmod 400 ~/.ssh/id_rsa

现在再说一遍:

远程控制[电子邮件保护](你的 S1 IP)

现在它可以正常工作了。

相关内容