Tunnel SSH attraverso il server Middleman: come connettersi in un solo passaggio (utilizzando la coppia di chiavi)?


9

La mia domanda è fondamentalmente come trasformare i miei due passaggi esistenti in un solo passaggio.

Ho un tunnel SSH funzionante impostato tra due computer utilizzando un server middleman come questo:

Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop

Quello che faccio attualmente è SSH da Kubuntu_laptop a Debian_Server e poi da Debian_Server a Kubuntu_desktop. Vorrei fare quell'unico comando SSH, emesso sul mio Kubuntu_laptop in bash che mi porta a essere connesso al Kubuntu_desktop (shell / bash).

I comandi che sto usando ora sono i seguenti. Passo 1:

me@kubuntu_laptop:~$ ssh -i ~/.ssh/id_rsa admin@debian_server  

Passo 2:

admin@debian_server:$ ssh -p 1234 -i /home/admin/.ssh/id_rsa admin@localhost 

Quindi sono collegato a kubuntu_desktop tramite SSH (da kubuntu_laptop).

Le chiavi RSA sono necessarie per tutte le connessioni SSH. L'accesso con password è disabilitato completamente. Si noti che gli account utente del computer sono diversi su due computer.

Per quanto riguarda la connessione per questa tappa:

Debian_Server<--nat_fw<--Kubuntu_desktop

Ecco come è stabilito:

autossh -M 5234 -N -f -R 1234:localhost:22 user@mydebian.com -p 22

Nota Kubuntu_desktop si collega a middleman come user@mydebian.com (non admin @ debian_server). Ma quando mi connetto a Kubuntu_desktop, mi connetto come utente amministratore.

Non riesco a modificare la porta di monitoraggio esistente (5234) o il numero di porta remota (- R) (1234 in questo esempio). Non riesco a modificare la sicurezza SSH per consentire l'accesso con password. Non riesco ad aprire nuove porte del firewall. Non riesco a cambiare gli account utente (tranne che sul laptop).



@HaukeLaging - sembra interessante ma non lo capisco. Che cos'è "nc"? E su quale macchina viene modificato ~ / .ssh / config? Fondamentalmente, ho bisogno di più dettagli di quelli forniti da quella domanda / risposta. Grazie.
MountainX

Questa domanda è stata indirizzata (senza notifica) a Server Fault SE. Questa è una forma MALE!
mdpc,

grazie per i voti negativi ovunque, ma cosa c'è di sbagliato nel chiedere in due posti diversi? Mi impedirai anche di chiedere a ubuntuforums.org o da qualche altra parte?
MountainX

@ HaukeLaging-Se utilizzo ProxyCommand sul mio laptop ~ / .ssh / config, cosa devo inserire per il nome host di Kubuntu_Desktop? Non c'è fqdn. Questo è SSH inverso. Grazie.
MountainX

Risposte:


8

Assicurarsi che netcat sia installato sul server Debian e utilizzarlo ProxyCommandnella configurazione SSH locale ( ~/.ssh/config).

Host Kubuntu_desktop
  ProxyCommand ssh Debian_Server nc localhost 1234

Ho dato tutti i miei passi in un'altra risposta per completezza, ma è stato tutto grazie al tuo aiuto. Accetto la tua risposta. Grazie!!!
MountainX

6

Grazie a @Ignacio Vazquez-Abrams ecco tutti i passaggi:

Assicurarsi che netcat sia installato sul server Debian e usare ProxyCommand nella configurazione SSH locale (~ / .ssh / config).

Ho modificato la configurazione come segue:

me@kubuntu_laptop:~/.ssh$ nano config

I contenuti sono:

Host kubuntu_desktop
  ProxyCommand ssh debian_server_fqdn nc localhost 1234
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

Quindi connettiti:

me@kubuntu_laptop:~$ ssh kubuntu_desktop

Collegato a kubuntu_desktop tramite SSH in 1 passaggio! Perfetto

Aggiornare:

Questo lo rende più flessibile:

me@kubuntu_laptop:~/.ssh$ nano config

I nuovi contenuti sono:

Host family_desktops
  ProxyCommand ssh debian_server_fqdn nc localhost %p
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

Quindi connettiti alla mamma:

me@kubuntu_laptop:~$ ssh family_desktops -p 1234

E connettiti a papà:

me@kubuntu_laptop:~$ ssh family_desktops -p 5678

Naturalmente, mamma e papà devono avere il passaggio 0 impostato (dalla mia domanda originale) in cui ognuno ha la propria porta -R definita. Esempio per papà:

Passaggio 0 (per papà):

autossh -M 6543 -N -f -R 5678:localhost:22 user@mydebian.com -p 22

Opzionale:

DAD=5678
ssh family_desktops -p $DAD

Il ProxyCommand può anche essere scritto come: ProxyCommand ssh debian_server_fqdn -W localhost:%pquindi non c'è bisogno di avere netcat sul server Debian.
Kevin,
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.