GNU/Linux >> Linux Esercitazione >  >> Linux

Ssh - Correggere le impostazioni del file di configurazione Ssh per eseguire il tunneling su una terza macchina?

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

Linux
  1. Ssh:passare le password a uno script?

  2. Come eseguire lo Scp tramite una macchina intermedia??

  3. Come posso aggiungere un indirizzo IPv6 con un ID ambito al file di configurazione ssh?

  4. Posizione non predefinita per il file di configurazione ssh in Linux

  5. Esecuzione di due server SSH

Utilizzo del file di configurazione SSH

Come impostare l'autenticazione basata su chiave Ssh per Github utilizzando il file ~/.ssh/config?

Usa il file di configurazione SSH per gestire le connessioni SSH a vari server remoti

Mantieni attiva la sessione SSH

Aggiungi la chiave pubblica al file known_hosts

aggiungendo la password a .ssh/config