SSH密钥交换

时间:2011-06-29 17:05:45

标签: security bash unix ssh

我有2台服务器用于工作:第一台是应用服务器,另一台是档案服务器。 我使用F-Secure SSH Client访问这两个服务器,使用相同的用户ID和公钥 - 私钥对进行身份验证。这意味着私钥存储在Windows机器上,公钥存储在两台服务器上。

现在我需要从应用服务器访问归档服务器。要做到这一点,我必须先进行密钥交换。

在这种情况下,什么是标准方法?我只是将我的私钥从Windows复制到应用程序服务器吗?它会危及安全吗?或者我需要生成一个新的密钥?

我很乐意帮助你!

P.S。我对Unix管理比较陌生,所以不要对我很难:)

2 个答案:

答案 0 :(得分:5)

标准方法是:

  1. 在每台计算机/用户上生成新的私钥/公钥对
  2. 使用.ssh中的授权密钥文件并添加每个公钥
  3. 将此授权密钥文件复制到每个远程主机
  4. 旁注:授权密钥文件以及密钥对是用户@机器相关的

    Sidenote2:通常ppl完全阻止root进程。 Root既不能通过pw auth访问,也不能通过密钥auth访问。

答案 1 :(得分:1)

@fyr的答案是正确的,但是您不需要手动添加或复制任何内容。您可以使用ssh-copy-id来做到这一点。

假设新计算机上的SSH服务器已经在运行,请从旧计算机(已经有SSH密钥对,如果没有运行ssh-keygen)运行

ssh-copy-id -i ~/.ssh/mykey user@host

其中-i参数表示公用密钥的位置。 ssh-copy-id工具会在需要时添加.pub扩展名,因此它不会尝试发送您的私钥。

一个真实的例子,假设与Raspberry Pi交换密钥,将是:

ssh-copy-id -i ~/.ssh/id_rsa pi@192.168.1.11

这将要求您输入密码,但只输入一次。如果密钥交换成功,您将可以ssh进入其中而无需输入密码。