使用 A 密钥通过 B 框从 A ssh 到 C,而不将其存储在 B 机器上

ssh from A to C via B box using A key without storing it on B machine

我正在编写仅使用一个密钥从 A 到 B 连接到 C 机器的脚本。

所以我想做这样的事情:

ssh -t -i id_rsa user@b_box ssh -i id_rsa user@c_box

问题是我只想将 id_rsa 存储在我的本地主机上。有没有办法把这个key作为参数或者变量传递给B机,这样我就可以不用密码连接到C机了?

我希望能够从B机免密码登录超过30个盒子(将来可能更多)。当我把钥匙放在 B 盒上时,这很容易。

这就是我们 ProxyCommand 的目的:

ssh -i id_rsa -oProxyCommand="ssh -W %h:%p user@b_box" user@c_box

或者 ~/.ssh/config:

Host b_box
  User user
  IdentityFile /path/to/id_rsa
Host c_box
  ProxyCommand ssh -W %h:%p b_box
  User user
  IdentityFile /path/to/id_rsa

然后只连接 ssh c_box