机器 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
答案3
如果您想从一台机器登录到另一台机器而无需密码,您需要使用ssh-keygen
工具生成密钥对,然后将其复制到目标机器。
执行此操作的方法是创建密钥对,然后将公钥复制到您想要访问的每个服务器。该文件应复制到/home/user/.ssh/authorized_keys
。当然,您必须将其替换/home/user
为真实用户主目录。
所需步骤如下:
1-在machine1上创建密钥对。
2-将生成的公钥复制到machine2。
3-在machine2上创建另一个密钥对。
4-将生成的公钥复制到machine3。