No, non è sicuro.
Chiamiamo le tue macchine locali e remote . Quello che stai facendo ora è creare un tunnel per X11 da locale a locale , quindi eseguire un client VNC su quel tunnel e utilizzarlo per connettersi a remoto . Questo non fa nulla, il traffico tra locale e remoto non va oltre il tunnel SSH.
Inizialmente sembrava che potessi dire che stavi SSH da locale a remoto , eseguendo un client VNC su remote X11 inoltrato a locale , quindi utilizza il client VNC per connetterti da remoto a remoto . Questo sarebbe sicuro (finché ti fidi del computer remoto , l'inoltro X11 è alquanto vulnerabile se remoto è dannoso; non mi è familiare abbastanza con VNC per sapere se questo è meglio o peggio che usare VNC direttamente) ma sembra contorto e non necessario, e suppongo che le prestazioni ne risentirebbero.
Se vuoi che VNC faccia il tunneling attraverso una connessione SSH, il modo corretto per farlo è di inoltrare una porta da locale a remoto usando ssh -L
:
ssh -L [localhost port]:[host]:[host port] remote
Questa sintassi può essere un po 'confusa all'inizio, finché non capisci cosa sta succedendo su quale macchina. [host]
qui è dal punto di vista di remoto ; ciò che accade è che stai inoltrando [localhost port]
a remoto , quindi remoto lo manda a [host]:[host port]
, quindi quello che vuoi veramente è:
ssh -L 5900:localhost:5900 remote
In questo modo il traffico viene inviato da locale porta 5900
a remoto , quindi remoto lo invia a se stesso sulla porta 5900
. Quindi puoi utilizzare il tuo client VNC su locale per connettersi a locale sulla porta 5900
(se la porta 5900 è già utilizzata su locale [localhost port]
può ovviamente essere cambiato in qualcos'altro).
Non è rilevante qui perché remoto si sta inoltrando a se stesso, ma è importante capire che una volta che il traffico raggiunge remoto verrà inviato non crittografato. Se disponi di un host VNC separato accessibile da remoto e utilizzato ssh -L 5900:vnchost:5900 remote
, il traffico verrà crittografato da locale a remoto , ma non da remoto a vnchost .
Non hai specificato quale protocollo stavi utilizzando, quindi questa risposta presuppone VNC, ma funzionerebbe altrettanto bene per altri protocolli semplicemente cambiando la porta che viene inoltrata. Si noti inoltre che alcuni protocolli di condivisione desktop consentono l'utilizzo di TLS, che dovrebbe rendere superfluo l'inoltro SSH se implementato correttamente.