我在 ~/.ssh/config 中有几个主机,它们在本地机器上运行良好,但远程机器不知道这些主机。
Host A
HostName github.com
IdentityFile ~/.ssh/A_rsa
Host B
HostName github.com
IdentityFile ~/.ssh/B_rsa
Host remotemachine.com
ForwardAgent yes
从本地主机:
$ ssh -T git@A
Hi A! You've successfully authenticated, ...
$ ssh -T git@B
Hi B! You've successfully authenticated, ...
从远程主机:
$ ssh remotemachine
$ ssh-add -l
... both keys present ...
$ ssh -T git@B
ssh: Could not resolve hostname B: Name or service not known
$ ssh -T [email protected]
Hi A! You've successfully authenticated, ...
如何在远程机器上使用密钥 B?
也就是说,在本地机器上我可以执行此操作ssh git@B
,但在远程机器上主机名B
未知。似乎 ssh-agent 只转发密钥,而不转发主机。如何让它也转发主机?
我也可以在远程机器上创建 ~/.ssh/config,但是要把什么放入 IdentityFile 中呢?我可以使用$ ssh -i KEYFILE
,但是如果密钥被转发,要把什么放入 KEYFILE 中呢?
答案1
是的,唯一的方法是在每台机器上使用ssh -i
或创建相同的设置。~/.ssh/config
IdentityFile
然而,复制民众密钥可以分配给其他服务器。也就是说,不是 ~/.ssh/A_rsa
,但仅限于~/.ssh/A_rsa.pub
。ssh 客户端将使用代理来获取私钥,就像在本地计算机上一样。