GNU/Linux >> Linux Esercitazione >  >> Linux

Ssh - Desktop remoto su tunnel inverso Ssh per sostituire Teamviewer?

Voglio aprire una sessione desktop remoto dal mio laptop al desktop tramite il mio tunnel SSH (inverso). Dovrebbe essere semplice (o almeno fattibile), giusto? Fino ad ora ho utilizzato Team Viewer per accedere al desktop remoto. Vorrei ottenere risultati simili senza Team Viewer.

Ecco come appare il mio tunnel SSH:

laptop--->nat--->middleman<--nat<--desktop

Tutte le macchine eseguono Linux (principalmente Kubuntu 12.04 o OpenSuse 12.3). Non riesco a modificare alcuna porta o apportare modifiche alla configurazione sui router nat.

Descriverò il mio tunnel SSH perché comprenderlo sembra essere necessario per risolvere il problema VNC / desktop remoto che è il cuore della mia domanda. Riguardo a questa tappa:

middleman<--nat<--desktop

…ecco come si stabilisce:

autossh -M 5234 -N -f -R 1234:localhost:22 [email protected]

Riguardo a questa tappa:

laptop--->nat--->middleman

Posso connettermi all'intermediario come segue:

[email protected]:~$ ssh -i ~/.ssh/id_rsa [email protected]  

Tuttavia, quello che devo effettivamente fare è collegarmi direttamente al desktop, non all'intermediario. Per farlo uso netcat ("nc") su middleman. Sulla base di ciò sembra che nc sia richiesto. Quindi modifico il mio file di configurazione SSH sul laptop per utilizzare ProxyCommand e nc:

[email protected]:~/.ssh$ nano config

I contenuti sono:

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

Dove middleman_fqdn è come "middleman.com"

Quindi mi collego al "desktop" in un solo passaggio:

[email protected]:~$ ssh family_desktops -p 1234

(Ho funzionato grazie all'aiuto qui e qui e ad altre domande correlate che ho posto. Ho posto un sacco di domande su questo argomento perché ci sto lottando da molte settimane.)

Con questa connessione SSH raggiungo una shell completamente funzionante sul mio computer denominata desktop . Perfetto.

Ora ho solo bisogno di una soluzione desktop remoto simile a VNC (o simile a TeamViewer) su questo tunnel SSH. Come?

Ecco cosa ho provato finora:

intermediario<–nat<–desktop

autossh -M 5235 -N -f -R 1235:localhost:5901 [email protected]

con quel collegamento stabilito:

x11vnc -autoport 5901 

Guardo per assicurarmi che si connetta alla porta 5901, cosa che fa.

laptop—>nat—>intermediario<–nat<–desktop

laptop ~/.ssh/config:

Host family_desktops
  ProxyCommand ssh -NL 5901:localhost:1235 middleman.com nc localhost 1235
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

Configurazione del tunnel:

[email protected]:~$ sudo ssh family_desktops

Cliente VNC:

connect to localhost:5901

Questo dà un errore di "server non trovato"

Ho provato una serie di variazioni su ProxyCommand, nessuna delle quali ha avuto successo. Ovviamente, sto indovinando quali parametri dovrebbero essere in ProxyCommand e quali dovrebbero essere sulla riga di comando ssh. Vedo alcuni potenziali problemi con la mia configurazione, ma non sono stato in grado di capire cosa farà funzionare tutto.

Correlati:uccidere tutti i lavori in background?

PS Come accennato, ho posto diverse domande a riguardo. Alcuni di questi mi hanno portato più vicino alla soluzione e costituiscono la base della mia domanda attuale. Altre delle mie precedenti domande su questo argomento mostrano solo la mia ignoranza e incapacità di porre la domanda nella forma giusta. A questo punto, questa domanda attuale rappresenta la mia migliore capacità di affermare qual è il mio problema e quale sia la soluzione desiderata, ma anche alcune delle mie altre domande sono ancora aperte. Eccone uno rilevante.

Risposta accettata:

Puoi provare a fare il secondo passaggio senza fare il nc? Cioè:esegui il VNC solo con -L e -R. Credo che il problema sia che la tua sessione netcat si sta riconnettendo a una già aperta. Quindi, quando fai le cose VNC, non usare netcat.


Linux
  1. Ssh – Reindirizza Stdout su Ssh?

  2. Ssh - Traffico di tunnel attraverso un'altra macchina su Ssh?

  3. Ctrl-c Gestione nella sessione Ssh?

  4. Come eseguire il tunneling HTTP su SSH tramite SOCKS?

  5. Limita rsync su ssh sola lettura/solo copia da host remoto

Come utilizzare SSHFS per montare directory remote su SSH

SSHFS:montaggio di un file system remoto su SSH

Risoluzione dei problemi del desktop remoto

Ssh:come funziona il tunneling Ssh inverso?

4 modi per trasferire file tra sistemi remoti e locali su SSH

Come utilizzare il montaggio SSHFS con directory remote su SSH