Имейте HostA, который расположился во внутренней подсети, которая была видна только от хоста gatway. Затем я даю команду как:
%ssh -t -o ProxyCommand='ssh GateWayUser@GatWayHost nc HostA 22' HostAUser@HostA ls -la
Это хорошо работает.
Но если я попробовал его ~/.ssh/config, это не работает:
% ssh -t HostAUser@HostA ls -la
ssh: connect to host <HostA IP here> port 22: Connection timed out
~/.ssh/config похож на это:
Host TargetHost
HostName It's IP
User It's User
Host GatWayHost
HostName It's IP
User It's User
ProxyCommand ssh GateWayUser@GatWayHost nc HostA 22
Какие-либо предложения, как заставить его работать?
Вы делаете это наоборот:
Host TargetHost
HostName It's IP
User It's User
ProxyCommand ssh GateWayUser@GatWayHost nc HostA 22
Host GatWayHost
HostName It's IP
User It's User
Вы помещаете команду прокси в блок соответствия соответствующего целевого узла и не наоборот. Но можно значительно упростить команду до:
ProxyCommand ssh GatWayHost nc %h %p
Или просто используют внутреннюю передачу io:
ProxyCommand ssh -W %h:%p GatWayHost