Ssh 在 2 台服务器上使用私钥

Ssh 在 2 台服务器上使用私钥

机器 1 有私钥和公钥对。机器 2 和机器 3 有公钥。

我通过 ssh 从 machine1 访问 machine2,然后我想从 machine2 访问 machine3。 就像 machine1--ssh-->machine2--ssh-->machine3 我该怎么做?

答案1

让我们澄清一下:您建立这些连接的用户拥有公钥/私钥对。在 machine2 和 machine3 上的 ~/.ssh/authorized_keys 中是否有连接用户公钥的副本?

如果是这种情况,那么在 machine1 上你应该运行一个ssh 代理缓存密钥的凭据。以下是我设置 ssh 代理并缓存密钥时的情况:

<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)

ssh-agent(如果尚未运行,则仅需运行 eval )

ForwardAgent然后,当我建立 SSH 连接时,我使用如下选项运行 ssh 命令:

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

除了我并不总是这样做之外,我的 ~/.ssh/config 文件配置为自动转发我的代理:

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

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

答案2

在 machine1 和代理转发上使用ssh-agent。有一个很棒的导游Steve Friedl 对此进行了详细的说明。

你可能想看看钥匙链, 也。

答案3

如果您想从一台机器登录到另一台机器而无需密码,您需要使用ssh-keygen工具生成密钥对,然后将其复制到目标机器。

执行此操作的方法是创建密钥对,然后将公钥复制到您想要访问的每个服务器。该文件应复制到/home/user/.ssh/authorized_keys。当然,您必须将其替换/home/user为真实用户主目录。

所需步骤如下:

1-在machine1上创建密钥对。

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

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

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

相关内容