![在命令行中使用 SSH ForwardAgent 和 ProxyJump 与 IdentityFile](https://linux22.com/image/1518998/%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E4%BD%BF%E7%94%A8%20SSH%20ForwardAgent%20%E5%92%8C%20ProxyJump%20%E4%B8%8E%20IdentityFile.png)
我正在使用 SSH 的新 ProxyJump 选项。我在代理的 IdentityFile 方面遇到了麻烦。
SSH 配置示例:
Host proxy
HostName 1.0.0.1
User foo
Port 1234
Identityfile ~/.ssh/mykey.id_rsa
Host target
HostName 1.0.1.1
User bar
Port 5678
Identityfile ~/.ssh/mykey.id_rsa
ProxyJump proxy
ForwardAgent yes
示意图:
ssh ssh
localhost ------> proxy ------> target
^ ^
using using
mykey mykey
使用带有此配置的 ssh 命令可以解决此问题:
ssh target
我尝试在没有配置文件的情况下执行此操作,但是它不起作用:
ssh -i ~/.ssh/mykey.id_rsa -AJ [email protected]:1234 [email protected]:5678
我找不到-i
为 ProxyJump 主机和目标主机指定 IdentityFile 的方法以使其工作。
这有效:
ssh -i ~/.ssh/mykey.id_rsa -AJ proxy [email protected]:5678
有没有办法使用-i
、-A
或-J
标志-o
来做到这一点?
答案1
据我所知,您无法使用新的跳转魔法来实现这一点。但它应该可以与“旧”代理命令一起使用:
ssh -i ~/.ssh/mykey.id_rsa -Ao ProxyCommand="ssh -i ~/.ssh/mykey.id_rsa -W %h:%p -p 1234 [email protected]" -p 5678 [email protected]