SSH tramite un proxy SOCKS? (client = OpenSSH OS X)


11

Non sono sicuro che questa domanda sia più adatta qui su ServerFault o su SuperUser. Pensandoci logicamente penso che questa sia una domanda da amministratore di sistema, quindi la sto mettendo qui, e se le mod pensano che dovrebbe muoversi, allora mi scuso per aver indovinato!

Comunque - ho un server fuori sede e sono bloccato su un IP privato senza accesso alla rete se non attraverso un proxy HTTP o un proxy SOCKS 4/5. Sto eseguendo OS X e vorrei che il comando ssh dal terminale funzionasse in qualche modo attraverso uno di questi due proxy per uscire sul server remoto. La porta SSH sul server remoto non è standard, anche se dubito che farà molta differenza.

Risposte:


5

So che questo è un post antico, ma penso che questa risposta sarà ancora utile:

Puoi farlo facilmente tramite un proxy SOCKS con NetCat (nc). Nella tua ~ / .ssh / config aggiungi solo due linee, una che specifica quali host vuoi fare il proxy e una linea per dirgli come collegarti via nc. Così:

~ / .ssh / config: (testato su OSX, dovrebbe funzionare anche su Linux)

Host 10.*
    ProxyCommand nc -X 5 -x PROXY_HOST:1080 %h %p

Sostituisci "PROXY_HOST" con la cosa giusta per la tua configurazione.

Questo fa sì che ssh, invece di aprire direttamente una connessione TCP all'host di destinazione (in questo caso tutto ciò che inizia con "10." - può essere un IP o un nome host), eseguire il comando "nc" con le opzioni specificate per effettivamente stabilire la connessione TCP e SSH fa il resto da lì. Molto maneggevole.

"5" è la versione SOCKS, "1080" è la porta proxy, "% h" SSH sostituisce con l'host digitato sulla riga di comando e "% p" SSH sostituisce con la porta dalla riga di comando (o l'impostazione predefinita 22).


7

Sì, questo può essere fatto. Vedi questo sito per un esempio.

Fondamentalmente usi il tuo ~/.ssh/configflle locale (o /etc/ssh/ssh_configse hai bisogno che sia a livello di sistema) per specificare una ProxyCommanddirettiva per gli host che devi passare attraverso il proxy per arrivare.

Puoi anche usare nc(che viene fornito con OS X) invece del software che menzionano su quel sito.

Consultare le pagine man ssh_config(5)e nc(1)per ulteriori informazioni.


1
Sfortunatamente la pagina a cui ti colleghi non è aggiornata e il collegamento alla versione con patch del file binario è morto - errore 404.
Bart B,

1
Oh, quanto è imbarazzante: ho trovato un collegamento a un comando proxy funzionante che si compila ancora su OS X 10.7 Lion e funziona ancora, SUL MIO BLOG DI PROPRIO! A mia difesa il posto ha 6 anni, ma ancora. Istruzioni di lavoro qui: bartbusschots.ie/blog/?p=184
Bart B

2
@BartB "Qualunque cosa tu abbia scritto più di una settimana fa potrebbe anche essere stata scritta da qualcun altro." - È un assioma di programmazione, ma vale anche per amministratori di sistema e blogger.
voretaq7,

3

Un po 'in ritardo, ma nota che puoi usare le altre risposte qui nel comando SSH stesso con il flag -o. Questo è stato utile per me, dal momento che potrei o non avrei bisogno di usare il proxy (a seconda dell'ufficio in cui mi trovo), quindi non voglio davvero modificare i miei file di configurazione ssh.

ssh -o "ProxyCommand nc -X 5 -x myproxy:myproxyport %h %p" myuser@cantaccessthiswithoutproxy.com
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.