Come accedere in remoto con desktop grafico completo su X11


8

Ho due macchine, entrambe con kubuntu: server e client. Mi piacerebbe connettermi al server dal client e avviare l'interfaccia grafica completa senza timore che alcuni comandi vengano eseguiti come utente client.

Quindi, ssh -XCfunziona e posso anche avviare programmi grafici da solo.

Tuttavia, quando startkdescrivo nella console ssh, dice "KDE sembra essere già in esecuzione su questo display". Il che è vero, ma non per lo stesso account utente.

Ho provato a uscire dall'interfaccia grafica e ad accedere da tty, ma poi (non sorprendentemente) non è stato possibile avviare alcun programma grafico, incluso kde.

In che modo posso fare ciò in modo tale da poter accedere semplicemente mentre eseguo l'accesso con un utente locale? Usa la macchina client come terminale stupido.

Risposte:


12

XDMCP è progettato per questo. Sul tuo server, devi abilitare il supporto XDMCP nel tuo desktop manager:

  • se stai usando kdm, cerca

    [Xdmcp]
    Enable=false
    

    alla fine kdmrc, falsepassa a truee riavvia kdm;

  • se stai usando lightdm, aggiungi

    [XDMCPServer]
    enabled=true
    port=177
    

    per /etc/lightdm/lightdm.confe riavviare lightdm.

Quindi sul tuo client, avvia X usando

X -query ${SERVER_IP}

(con l'indirizzo IP appropriato) e la schermata di accesso del tuo server dovrebbe apparire sul tuo client.


grazie, esattamente quello di cui avevo bisogno. Lo zio G divertente non l'ha trovato e ho dovuto chiedere.
Velis,

2
Funziona, ma XDMCP significa che stai usando il semplice protocollo X11, che non supporta la crittografia. Se questo è un problema, devi cercare altre soluzioni
Wouter Verhelst

4

È possibile accendere il server VNC

Impostazioni> Condivisione> Condivisione schermo

Quindi proxy inoltra 5900 su SSH al PC se è necessario utilizzare SSH.

ssh -L 5900:localhost:5900 #destination here

quindi utilizzare un client Desktop remoto (RD) come Remina per connettersi al proxy ssh locale così;

Collegare> 127.0.0.1:5900

Assicurati di esaminare gli errori di sicurezza di VNC prima di utilizzarlo. VNC dovrebbe essere abbastanza sicuro da usare se il tunneling su SSH. Questo metodo funzionerà solo se un utente ha effettuato l'accesso. Per farlo funzionare senza un utente connesso, è necessario eseguire l'accesso, avviare un server VNC e specificare quale schermo utilizzare IE 0, 1, 2 e quindi connettiti ad esso usando Remina o qualcosa del genere ovunque.


Ho installato x11vnc su Ubuntu. Quindi se nessun utente ha effettuato l'accesso al sistema, allora il comando per avviare x11vnc è x11vnc displaynumber:1corretto?
ART

3

Puoi avviare un gestore di finestre su una sessione SSH, ma devi assicurarti che il tuo server X non stia già eseguendo un gestore di finestre.

Questo può essere realizzato in due modi:

  1. Esegui tutto manualmente, anziché utilizzare startxo un display manager:

    Innanzitutto, avvia il tuo server X:

    X -nolisten tcp :0
    

    ora passa a un'altra console virtuale (ad esempio, premi ctrl + alt + f2) e digita:

    DISPLAY=:0 ssh -XC <host> startkde
    

    Ora torna alla prima console virtuale e usa normalmente la tua sessione X. Il rovescio della medaglia di questo metodo è che non include l' xauthinstallazione (quindi in teoria tutti i computer remoti saranno in grado di connettersi alla tua sessione X, il che rappresenta un rischio per la sicurezza); potresti voler aggiungere questo.

  2. Utilizzare i file .xinitrc(per startx) o .xsession(per gestori display) per modificare il gestore finestre:

    Se hai configurato il tuo sistema in modo che SSH senza password funzioni (ad es. Tramite chiavi ssh o usando Kerberos o qualche altro meccanismo di autenticazione), puoi aggiungere la seguente riga come riga finale nel tuo .xinitrco nei .xsessionfile:

    exec ssh -XC <host> startkde
    

    La cosa da ricordare è che qualunque cosa tu aggiunga a quei file verrà eseguita al posto della normale configurazione della sessione X11. In alcuni casi, potrebbe essere necessario selezionare l'opzione "standard Xsession" nella schermata di accesso.

    Anche se non si dispone di un SSH senza password, potrebbe funzionare, a condizione che sia stato ssh-askpassinstallato. Se sshdetermina che non ha un terminale di controllo, ma ha un $DISPLAYset di variabili, userà che per chiedere una password.

    L'aspetto negativo di questo metodo è che diventa più difficile accedere al computer "locale".

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.