È possibile utilizzare OpenSSH per inoltrare ad altri dispositivi abilitati SSH come switch router ecc. Se è possibile eseguire questa operazione senza creare un'applicazione su misura su Linux?
Grazie
È possibile utilizzare OpenSSH per inoltrare ad altri dispositivi abilitati SSH come switch router ecc. Se è possibile eseguire questa operazione senza creare un'applicazione su misura su Linux?
Grazie
Risposte:
Sicuro; basta usare il port forwarding / tunneling SSH. Avviare una connessione ssh al computer "proxy" utilizzando il comando seguente:
ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
$PROXYHOST: la macchina a cui hai accesso SSH$REMOTEHOST: la macchina a cui $ PROXYHOST può connettersi, ma non è possibile. Utilizzare un nome host o un IP che è $PROXYHOSTpossibile utilizzare per fare riferimento alla macchina$SSHPORT: la porta che sshd è in ascolto su remotehost; molto probabilmente 22$LOCALPORT: la porta SSH locale in uscita si sta aprendo sul computer locale che inoltra alla porta 22 su $REMOTEHOSTLasciare quella connessione in alto per far funzionare il tunnel. Potresti voler aggiungere anche -Nal comando in modo che questa connessione non visualizzi 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 alla $REMOTEHOSTporta SSH.
Se si desidera aggiornare la configurazione sul client, è possibile impostare il client in modo che utilizzi la casella gateway come proxy . La scatola di ritrasmissione avrà bisogno di netcat installato e per i migliori risultati vorrai avere un'impostazione di 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 username@ssh-relay-host "/bin/netcat -w 1 internal-ssh-host 22"
Con quanto sopra puoi semplicemente eseguire il comando ssh internal-ssh-host-proxy dal tuo computer client.
Se l'host SSH proxy ha il client OpenSSH 5.4 o versioni successive non è necessario netcat e invece è possibile utilizzare la modalità netcat integrata.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22
Delle risposte presentate, Zordache è la migliore soluzione globale. Tuttavia, per i posteri, se si desidera semplicemente connettersi ad-hoc senza modificare la propria configurazione, utilizzare il -tflag per allocare uno pseudo terminale insieme all'esecuzione di ssh direttamente sul relè.
ssh -t relay.example.com ssh internal.example.com
Puoi inoltrare le connessioni automaticamente usando OpenSSH. Nel tuo ~/.ssh/authorized_keysfile, puoi specificare un comando da eseguire, che potrebbe essere un SSH per un secondo computer.
[ssh client] ----> [ssh relay server] ----> [ssh target server]
you modified authorized_keys target machine
Quello che finirai per vedere sono due istruzioni Password:: una per il server di inoltro e una per il server di destinazione. È sempre possibile rimuovere questo comportamento utilizzando i certificati.