在命令行中使用 SSH ForwardAgent 和 ProxyJump 与 IdentityFile

在命令行中使用 SSH ForwardAgent 和 ProxyJump 与 IdentityFile

我正在使用 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]

相关内容