Server di inoltro SSH con OpenSSH


10

È 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:


9

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 $REMOTEHOST

Lasciare 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.


3

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

Siamo spiacenti ma non stai usando OpenSSH, stai usando netcat per fare il relay tra server client e server?
— aHunter il

Sta usando OpenSSH combinato con un'utilità molto comune che è disponibile quasi ovunque. Non è puro ssh, ma non lo definirei su misura.
— Zoredache,

No, sono d'accordo che non è su misura, ma volevo sapere se è possibile inoltrare utilizzando OpenSSH in modo da utilizzare un client SSH standard e SSH in una casella che esegue OpenSSH che quindi automaticamente fornisce l'accesso SSH a un'altra macchina o più macchine. Grazie
— aHunter il

1
@aHunter, per la cronaca ora esiste una 'modalità netcat' integrata in openssh 5.4 che offre una connessione openssh pura - blog.rootshell.be/2010/03/08/openssh-new-feature-netcat-mode nessuno strumento esterno sono necessari.
— Zoredache,

3

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

soluzione più semplice senza file di modifica
— Kartoch,

2

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.


sembra perfetto come configureresti sshd in openssh?
— aHunter l'

Fare riferimento alla sezione [Comandi forzati] [1] in [1] eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html
— sybreon

questa è un'idea fantastica. L'ultima cosa che voglio fare è aprire 100 porte discrete nel mio firewall con percorsi. Quindi ripetere per ridondanza. Questo suggerisce che posso creare 100 chiavi SSH e collegarle ognuna al proprio server. Ciò suggerisce anche che posso bloccare completamente il server di inoltro. Alcuni potrebbero chiamarlo VPN, ma lo vedo diversamente.
— Richard
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.