我的场景:
我Server A
在家里,Server B
在我父母家里都有。我家里Laptop A
也有。Laptop B
我做了各种奇怪的 ssh 跳跃 - 我可能会连接Laptop A -> Server A -> Server B
。或者Laptop B -> Server A -> Laptop A
。或者Server A -> Server B
我已经在所有这些机器上设置了钥匙串,并且像一个具有安全意识的极客一样,我已经
eval `keychain --clear`
在我的.zlogin
文件中。
我的问题是,即使我解锁了 上的密钥Laptop A
,一旦我连接到Server A
它,就会尝试使用服务器 A 上的钥匙串/ssh-代理,所以我必须解锁那些钥匙也一样。我ForwardAgent
也在所有这些机器上进行了设置。我希望发生的是这样的事情:
- 登录到
Laptop A
- 解锁
Laptop A
钥匙 - SSH 到
Server A
- ssh 到
Server B
- 使用来自Laptop A
.
我怎样才能做到这一点?
答案1
这并不能直接回答您的问题,但它确实为您提供了一个可供考虑的替代选择,这可能会对您有所帮助。我通常$HOME/.ssh/config
像这样设置我的文件:
IdentityFile ~/.ssh/my-computers
# infrastructure
Host lap1
User sam
#PubkeyAuthentication no
ProxyCommand ssh [email protected] nc lap1.internal.local %p
然后,当我外出时想要连接到我的 lap1.internal.local 系统时,我只需执行以下操作:
ssh lap1
我通常将我的公钥 ssh-copy-id 到我想要登录的其他服务器。如果您希望我详细说明,请告诉我。