GNU/Linux >> Linux Esercitazione >  >> Linux

Server di inoltro SSH con OpenSSH

Soluzione 1:

Sicuro; basta usare il port forwarding/tunneling SSH. Avvia una connessione ssh alla macchina "proxy" utilizzando il seguente comando:

ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
  • $PROXYHOST :la macchina a cui hai accesso SSH
  • $REMOTEHOST :la macchina a cui $PROXYHOST può connettersi, ma tu non puoi. Usa un nome host o un IP che $PROXYHOST può usare per riferirsi alla macchina
  • $SSHPORT :la porta che sshd sta ascoltando su remotehost; molto probabilmente 22
  • $LOCALPORT :la porta locale in uscita SSH si sta aprendo sul tuo computer locale che inoltra alla porta 22 su $REMOTEHOST

Lascia quella connessione per mantenere il tunnel funzionante. Potresti voler aggiungere anche -N al comando in modo che questa connessione non avvii una shell remota e non la chiuderai accidentalmente in seguito.

Una volta stabilito il tunnel, procedi come segue:

ssh -p $LOCALPORT localhost

Questo tenta una connessione SSH al tuo computer locale sulla porta che viene inoltrata al $REMOTEHOST porta SSH di.

Soluzione 2:

Se sei disposto ad aggiornare la configurazione sul tuo client, puoi impostare il tuo client in modo che utilizzi la tua casella gateway come proxy. La tua casella di inoltro avrà bisogno di netcat installato e per ottenere i migliori risultati ti consigliamo di configurare l'autenticazione basata su chiave.

Ecco cosa uso nel mio .ssh/config per connettermi attraverso un altro host.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh [email protected] "/bin/netcat -w 1 internal-ssh-host 22"

Con quanto sopra puoi semplicemente eseguire il comando ssh internal-ssh-host-proxy dalla tua macchina client.

Se l'host proxy SSH ha il client OpenSSH 5.4 o versioni successive, non hai bisogno di netcat e puoi invece utilizzare la modalità netcat incorporata.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh [email protected] -W internal-ssh-host:22

Soluzione 3:

Delle risposte presentate, quella di Zordache è la migliore soluzione complessiva. Tuttavia, per i posteri, se vuoi semplicemente connetterti ad-hoc senza modificare la tua configurazione, usa -t flag per allocare uno pseudo terminale insieme all'esecuzione di ssh direttamente sul relay.

ssh -t relay.example.com ssh internal.example.com

Soluzione 4:

Puoi inoltrare automaticamente le connessioni utilizzando OpenSSH. Nel tuo ~/.ssh/authorized_keys file, puoi specificare un comando da eseguire, che potrebbe essere un SSH per una seconda macchina.

[ssh client] ----> [ssh relay server] ----> [ssh target server]
    you          modified authorized_keys      target machine

Alla fine vedrai due prompt per Password: :uno per il server di inoltro e uno per il server di destinazione. Puoi sempre rimuovere questo comportamento utilizzando i certificati.


Linux
  1. Best practice per la sicurezza di OpenSSH

  2. Come installare il server SSH su Ubuntu/Debian con OpenSSH

  3. Come proteggere il servizio SSH con Port Knocking

  4. Risolvi i problemi di SSH

  5. SSH con authorized_keys su un sistema Ubuntu con homedir crittografato?

Correzione dell'errore del tubo rotto con la connessione SSH

Come bloccare il tuo server CentOS con IPtables

Genera chiavi RSA con SSH usando PuTTYgen

Accedi a un server Linux con una chiave privata SSH su un client Windows

Come proteggere SSH con Fail2Ban

Connettiti con OpenSSH (Windows)