Próbuję umieścić moją komendę ssh multi-hop w pliku ssh .ssh / config.
To jest mój wykres połączeń: laptop (jestem tutaj) ------> userver -------> stacja robocza
Umieściłem publiczne klucze SSH ssh w „userver” i „workstation”. W tej chwili mogę się połączyć, wpisując następującą linię:
ssh -A -t userserver@userver ssh -A userworkstation@workstation
Chciałbym jednak móc korzystać z możliwości pliku konfiguracyjnego w ~ / .ssh / config, aby osiągnąć ten sam efekt, ale używając jednego prostego polecenia, które pozwoliłoby mi również na szybkie kopiowanie przy pomocy 'scp'. Jedynym problemem jest to, że „userver” nie ma polecenia „nc” i nie mam tam administratora, tylko kontroluję mój folder domowy. Niemniej jednak próbowałem kilku rzeczy:
Mam ten plik konfiguracyjny na swoim laptopie (~ / .ssh / config):
# laptop config file
Host userver
Hostname userver_hostname
port 22
User server_user
Również inny plik konfiguracyjny w userver (~ / .ssh / config)
# userver config file
Host workstation
Hostname workstation_hostname
port 22
user workstation_username
Za pomocą tych plików konfiguracyjnych mogę się połączyć jako
ssh -A -t userver ssh -A workstation
co jest poprawą, ale niewystarczające. Próbowałem dodać innego hosta w konfiguracji moich laptopów, na przykład:
Host hop
ProxyCommand ssh -A -t userver ssh -A workstation
Potem, kiedy to zrobię
ssh hop
Otrzymuję następujące dane wyjściowe z błędami i nie mogę się połączyć:
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
-bash: line 1: $'SSH-2.0-OpenSSH_6.4\r': command not found
Jakieś pomysły?