Próbuję tunelować do serwera za pośrednictwem serwera pomostowego. Do tej pory udało mi się uruchomić go poprawnie z powłoki poleceń za pomocą następującego polecenia:
ssh -A -t bridge_userid@bridgemachine.com ssh -A remote_userid@remoteserver.com
Ale próbowałem zawinąć to w mój ~/.ssh/config
plik i mam problemy. Próbowałem:
Host axp
User remote_userid
HostName remoteserver.com
IdentityFile ~/.ssh/id_rsa.eric
ProxyCommand ssh -A -t bridge_userid@bridge_userid.com ssh -A remote_userid@%h
Ale kiedy to robię, otrzymuję następujący komunikat o błędzie remoteserver.com
i nie jestem pewien, co go powoduje:
ksh: SSH-2.0-OpenSSH_6.8 ^ M: nie znaleziono
Wiem, że kiedy się loguję remoteserver.com
, moja powłoka jest /usr/bin/ksh
.
Próbowałem dodać argumenty ścieżki do poleceń ssh w pliku konfiguracyjnym, ale nie miało to znaczenia.
Jakieś pomysły, co to może być?
ssh -A remote_userid@remoteserver.com
jako polecenie do uruchomienia na maszynie mostowej, config nie daje możliwości dostarczenia domyślnych poleceń. To, co próbujesz zrobić works
samo w sobie, ale potem ssh próbuje użyć twojego ProxyCommand
jako tunelu i zaczyna odpalać protokół SSH w dół, tam gdzie na drugim końcu czeka powłoka zamiast sshd nasłuchującego protokołu SSH.
ProxyCommand
należy go używać. Zazwyczaj używa się go w przypadku netcat, gdzie ssh przepuszcza przez nie dane wyjściowe, a netcat działa jako tunel do portu SSH zdalnego serwera. Potrzebujesz ProxyCommand czegoś takiego,ssh -W %h:%p bridge_userid@bridgemachine.com
jeśli chcesz korzystać z tej funkcji.