Sto cercando di eseguire il tunneling su un server tramite un server bridge. Finora, sono stato in grado di farlo funzionare correttamente dalla shell dei comandi usando il seguente comando:
ssh -A -t [email protected] ssh -A [email protected]
Ma ho cercato di avvolgerlo nel mio ~/.ssh/config
file e ho problemi. Ho provato:
Host axp
User remote_userid
HostName remoteserver.com
IdentityFile ~/.ssh/id_rsa.eric
ProxyCommand ssh -A -t [email protected]_userid.com ssh -A [email protected]%h
Ma quando lo faccio, ricevo il seguente messaggio di errore da remoteserver.com
e non sono sicuro di cosa lo stia causando:
ksh:SSH-2.0-OpenSSH_6.8^M:non trovato
Lo so quando accedo a remoteserver.com
, la mia shell è /usr/bin/ksh
.
Ho provato ad aggiungere argomenti di percorso ai comandi ssh nel file di configurazione, ma non ha fatto alcuna differenza.
Qualche idea su cosa può essere?
Risposta accettata:
La risposta di Jakuje è giusta, ma da OpenSSH 7.3
, ora puoi usare -J
ProxyJump
che è più facile. Vedi le mie note:
OpenSSH 7.3
o superiore
Usa ProxyJump
. Come spiegato nel manuale:
-J [[email protected]]host[:port]
Connettiti all'host di destinazione effettuando prima una connessione ssh all'host di salto e quindi stabilendo un inoltro TCP alla destinazione finale da lì. È possibile specificare più salti di salto separati da virgole. Questa è una scorciatoia per specificare una direttiva di configurazione ProxyJump.
ProxyJump ~/.ssh/config
esempio
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2_behind_server1
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
ProxyJump server1
Connettiti con
ssh server2_behind_server1 -v
Aggiungi -v
per output dettagliato
ProxyJump -J
Esempio di riga di comando
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
Connettiti con
ssh server2 -J server1 -v
Oppure usa -o
ssh server2 -o 'ProxyJump server1' -v
OpenSSH 5.4
o superiore
Usa ProxyCommand
con -W
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh server1 -W %h:%p
Connettiti con
ssh server2 -v
Oppure usa -o
ssh server2 -o 'ProxyCommand ssh server1 -W %h:%p' -v
OpenSSH sotto 5.4
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh server1 nc %h %p 2> /dev/null
Connettiti con:
ssh server2 -v
Oppure usa -o
ssh server2 -o 'ProxyCommand ssh server1 nc %h %p 2> /dev/null' -v
Fonti
-J
aggiunto in OpenSSH 7.3
- ssh(1):aggiungi un'opzione ProxyJump e il corrispondente flag -J della riga di comando
per consentire l'indirizzamento indiretto semplificato attraverso uno o più bastioni SSH
o "host di salto".
-W
aggiunto in OpenSSH 5.4
- Aggiunta una "modalità netcat" a ssh(1):"ssh -W host:port ..." Questo connette
stdio sul client a una singola porta di inoltro sul server. Questo
consente, ad esempio, di utilizzare ssh come ProxyCommand per instradare le connessioni
tramite server intermedi. bz#1618