Che cos’È il Reverse Tunneling SSH? (e Come usarlo)

0
629
Eny Setiyowati/Shutterstock.com

Bisogno di SSH per un irraggiungibile computer con Linux? L’hanno chiamata, quindi burrow giù la connessione per ottenere il tuo proprio remoto sessione SSH. Vi mostriamo come.

Quando Si Desidera Utilizzare il Reverse Tunneling SSH

A volte, i computer remoti può essere difficile da raggiungere. Il sito si trovano a maggio hanno stretto le regole del firewall in luogo, o forse l’amministratore locale ha istituito una Rete complessa Indirizzo di regole di Traduzione. Come fai ad arrivare ad un computer se è necessario connettersi?

Cerchiamo di stabilire un certo numero di etichette. Il vostro computer è il computer locale, perché è più vicino a voi. Il computer si sta per connettersi a un computer remoto, perché è in una posizione diversa rispetto a voi.

Per differenziare tra computer locali e remoti utilizzati in questo articolo, il computer remoto è chiamato “howtogeek” e che è in esecuzione Linux Ubuntu (con viola terminal di windows). Il computer locale è chiamato “Sulaco” e l’esecuzione di Manjaro Linux (con giallo terminal di windows).

Normalmente avresti fuoco una connessione SSH dal computer locale e di collegarsi al computer remoto. Che non è un’opzione, il networking, stiamo descrivendo. E ‘ davvero non importa quello specifico problema di rete—questo è utile quando non è possibile SSH direttamente a un computer remoto.

Ma se la configurazione di rete sul vostro fine è molto semplice, il computer remoto può connettersi a te. Che da sola non è sufficiente per le vostre esigenze, però, perché non fornire con un gruppo di lavoro sessione della riga di comando sul computer remoto. Ma è un inizio. Si dispone di una connessione tra i due computer.

La risposta si trova in reverse tunneling SSH.

Che cos’È il Reverse Tunneling SSH?

Reverse tunneling SSH consente di utilizzare tale connessione stabilita per impostare una nuova connessione dal computer locale torna al computer remoto.

Poiché la connessione è venuto dal computer remoto, utilizzando per andare nella direzione opposta è il suo utilizzo “in retromarcia”. E perché SSH è sicuro, si sta mettendo una connessione protetta all’interno di un esistente connessione sicura. Questo significa che la tua connessione al computer remoto agisce come un tunnel privato all’interno della connessione originale.

E così arriviamo al nome “reverse tunneling SSH.”

Come Funziona?

Reverse tunneling SSH si basa sul computer remoto utilizzando la connessione stabilita per l’ascolto di nuove richieste di connessione dal computer locale.

Il computer remoto è in ascolto su una porta di rete sul computer locale. Se rileva un SSH richiesta a quella porta, inoltra la richiesta di connessione a se stesso, giù per la connessione stabilita. Questo fornisce una nuova connessione dal computer locale al computer remoto.

E ‘ più facile set-up è quello di descrivere.

Utilizzando SSH Reverse Tunneling

SSH è già installato sul vostro computer Linux, ma potrebbe essere necessario avviare il demone SSH (sshd) se il computer locale non ha mai accettato le connessioni SSH prima.

sudo systemctl start sshd

Per avere il demone SSH avviare ogni volta che si riavvia il computer, utilizzare questo comando:

sudo systemctl enable sshd

Sul computer remoto, utilizzare il seguente comando.

  • L’-R (reverse) opzione dice ssh che le nuove sessioni SSH deve essere creato sul computer remoto.
  • Il “43022:localhost:22” dice ssh che le richieste di connessione per porta 43022 sul computer locale deve essere inoltrata alla porta 22 sul computer remoto. Porta 43022 è stato scelto perché è elencato come non allocato. Non è un numero speciale.
  • dave@sulaco.local è l’account utente sul computer remoto è intenzione di collegare il computer locale.

ssh -R 43022:localhost:22 dave@sulaco.local

Si può ottenere un avvertimento circa non avendo mai collegato al computer locale prima. O si potrebbe essere visualizzato un messaggio di avviso come i dettagli di connessione vengono aggiunti all’elenco di riconosciuta SSH host. Quello che si vede—se non altro—dipende dal fatto che le connessioni siano mai stati fatti dal computer remoto al computer locale.

Ti verrà chiesto di inserire la password dell’account che si utilizza per connettersi al computer locale.

Si noti che quando il collegamento è stato effettuato il prompt dei comandi modifiche da dave@howtogeek a dave@sulaco.

Ora siamo collegati alla rete locale di computer dal computer remoto. Il che significa che siamo in grado di inviare comandi ad esso. Facciamo che il comando per vedere gli account di accesso sul computer locale.

che

Possiamo vedere che la persona con l’account utente di nome dave ha registrato nel computer locale, e il computer remoto è connesso (utilizzando le stesse credenziali) dall’indirizzo IP 192.168.4.25.

CORRELATI: Come Determinare l’Account Utente Corrente in Linux

La connessione al Computer Remoto

Perché la connessione dal computer remoto è successo, ed è in ascolto per le connessioni, si può provare a connettersi al computer remoto dal locale.

Il computer remoto è in ascolto sulla porta 43022 sul computer locale. Così—un po ‘ contro-intuitivo—per effettuare una connessione al computer remoto, chiediamo ssh per effettuare una connessione tra il computer locale, sulla porta 43022. Che la richiesta di connessione sarà avanti al computer remoto.

ssh localhost -p 43022

Abbiamo chiesto la password dell’account utente, quindi collegato al computer remoto dal computer locale. Il nostro Manjaro computer felicemente dice “Benvenuti su Ubuntu 18.04.2 LTS”.

Nota che il prompt dei comandi è stato modificato da dave@sulaco a dave@howtogeek. Abbiamo raggiunto il nostro obiettivo di effettuare una connessione SSH al nostro hard-to-reach computer remoto.

Utilizzando SSH Con Chiavi

Per renderlo più conveniente per la connessione dal computer remoto al computer locale, siamo in grado di impostare le chiavi SSH.

Sul computer remoto, digitare questo comando:

ssh-keygen

Ti verrà richiesto di immettere una passphrase. È possibile premere Invio per ignorare la passphrase domande, ma questo non è raccomandato. Vorrebbe dire che chiunque sul computer remoto potrebbe fare una connessione SSH al vostro computer locale senza essere contestato per una password.

Tre o quattro parole separate da simboli fanno un robusto passphrase.

Le chiavi SSH verrà generato.

Abbiamo la necessità di trasferire la chiave pubblica per il computer locale. Utilizzare questo comando:

ssh-copy-id dave@sulaco.local

Ti verrà chiesto di inserire la password per l’account utente che si sta registrando in a, in questo caso, dave@sulaco.local.

La prima volta che si effettua una richiesta di connessione da un computer remoto al computer locale, sarà necessario inserire la password. Non sarà necessario inserire nuovamente per il futuro le richieste di connessione, per tutto il tempo che la finestra del terminale rimane aperta.

CORRELATI: Come Creare e Installare le Chiavi SSH Dalla Shell di Linux

Non Tutte Le Gallerie Fanno Paura

Alcune gallerie possono essere buio e tortuoso, ma reverse tunneling SSH non è troppo difficile da navigare, se è possibile mantenere il rapporto tra il computer remoto e il computer locale dritto in testa. Poi invertire.

CONTINUA A LEGGERE

  • “Dove Posizionare Il Router per la Migliore Velocità del Wi-Fi
  • “Può Pacemaker (e Altri Dispositivi Medici) Davvero Essere Violato?
  • “Come in Remoto, Aprire un’Applicazione GUI Con PuTTY
  • “Che cosa È allentato, e Perché la Gente ama?
  • “Come Vendere il Tuo Vecchio iPhone per il Dollaro Superiore