Ssh使用两台服务器的私钥

Machine1有私人和公共对。 Machine2和Machine3有公钥。

我通过ssh从machine1进入machine2,然后我想从machine2进入machine3。 就像那个machine1 – ssh – > machine2 – ssh – > machine3我该怎么做?

让我们澄清这一点:你build立这些连接的用户有一个公/私钥对。 在machine2和machine3的〜/ .ssh / authorized_keys中有连接的用户公钥的副本?

如果是这种情况,那么在machine1上,你应该运行一个ssh-agent来caching你的密钥的凭证。 下面是我设置ssh代理并caching密钥时的样子:

<tbielawa>@(expressomaker)[~] 04:15:33 $ eval `ssh-agent` Agent pid 21725 <tbielawa>@(expressomaker)[~] 04:15:20 $ ssh-add Enter passphrase for /Users/tbielawa/.ssh/id_rsa: Identity added: /Users/tbielawa/.ssh/id_rsa (/Users/tbielawa/.ssh/id_rsa) <tbielawa>@(expressomaker)[~] 04:15:31 $ ssh-add -l 2048 5f:e0:9b:92:e4:80:7e:5e:c8:29:00:29:ae:ca:bd:58 /Users/tbielawa/.ssh/id_rsa (RSA) 

(你只需要运行eval ssh-agent如果没有运行的话)

然后当我build立SSH连接时,我运行带有ForwardAgent选项的ssh命令,如下所示:

 <tbielawa>@(expressomaker)[~] 04:17:58 $ ssh fridge -o "ForwardAgent yes" Last login: Wed Nov 3 14:32:28 2010 from expressomaker 

除了我不这样做,我的〜/ .ssh / config文件被configuration为自动转发我的代理:

 <tbielawa>@(fridge)[~] 04:18:03 $ cat .ssh/config Host * ForwardAgent yes 

如果你像这样运行你的ssh命令,那么你的代理将在你的server 。 然后您可以使用您的公钥/私钥组合ssh到server3。

使用machine1上的ssh-agent和代理转发。 史蒂夫·弗里德尔有一个伟大的指导 ,详细说明了这一点。

您也可能想要查看钥匙串 。

如果你想从一台机器login到另一台没有密码,你需要使用ssh-keygen工具来生成密钥对,然后将其复制到目标机器上。

创build密钥对然后将公钥复制到每个想要访问的服务器的方法。 该文件应该被复制到/home/user/.ssh/authorized_keys 。 当然,你必须用真正的用户主目录replace/home/user

这里需要的步骤是:

1-在machine1上创build密钥对。

2-将生成的公钥复制到machine2。

3-在machine2上创build另一个密钥对。

4-将生成的公钥复制到machine3。