ssh 堡垒主机代理命令

ssh 堡垒主机代理命令

这是一种奇怪的情况,即相同的命令在直接在 shell 中输入时有效,但在 ssh 配置文件中的 ProxyCommand 中则无效。

所以这有效:

 $ ssh -A -R 40022:git.some.pt:22 -t -t [email protected] ssh -t -t -R 40022:localhost:40022 [email protected]

但这并没有:

在~/.ssh/config中

Host destination
  ProxyCommand ssh -A -R 40022:git.some.pt:22 -t -t [email protected] ssh -t -t -R 40022:localhost:40022 [email protected]

$ ssh destination
Bad packet length 218783296.
Disconnecting: Packet corrupt

有什么想法吗?

答案1

您需要允许命令行ssh连接到某个地方的 ssh 服务器。您现有的ProxyCommand并不能做到这一点 - 它提供了登录某处的所有方法,并且您的初始ssh.

这似乎对我来说相当有效,而且我认为我的链是正确的(显然我更难使用与您使用的相同主机名进行测试)。但请注意,它确实使用nc而不是ssh在堡垒主机上:

Host destination.net
        User user
        ProxyCommand ssh -A [email protected] nc %h %p
        ForwardAgent yes
        RemoteForward 40022 git.some.pt:22

我也一直在考虑在(而不是)/usr/sbin/sshd -i的末尾运行,正如建议的那样ssh -p %p user@%hnc %h %p人 ssh_config,但我无法让它发挥作用。也许你会有更多的运气。

相关内容