Można to osiągnąć za pomocą vino vnc server & remmina (oba są dostarczane domyślnie z Ubuntu; jeśli nie, zainstaluj je przez uruchomienie sudo apt-get install remmina). Następnie uruchom następujące polecenia z komputera lokalnego w wierszu polecenia:
ssh -Y gman@remote. Użyj zaufanego przekazywania X11, w przeciwnym razie nie zadziała
vino-preferences. Otworzy się preferencje vino.
Kliknij również configure network automatically to accept connection. Ale nie wpisuj żadnego hasła, jego kodowanie base64 . Następnie kliknij zamknij. Następnie uruchomić:
Następnie otwórz remmina . Wybierz w vncramach protokołu.
W basiczakładce umieść adres serwera w serverpolu.
Na karcie ssh kliknij enable ssh tunnel. Poniżej ssh authenticationmoże być passwordlub public key:
Kliknij zapisz. Następnie kliknij dwukrotnie nazwę połączenia (home-desktop, jak pokazano na rysunku), aby rozpocząć przeglądanie pulpitu zdalnego.
Metoda 2:
x11vncjest prostym serwerem VNC i nie musisz bawić się ustawieniami Gnome ani 500 zapór ogniowych, po prostu zainstaluj x11vncna wszystkich swoich komputerach (z marionetką lub czymkolwiek, czego używasz do masowej kontroli).
Oczywiście zamiana user@hostnazwy użytkownika i hosta / adresu IP komputera zdalnego.
Następnie użyj klienta VNC do połączenia localhost:5900. Komenda SSH uruchamia serwer VNC na komputerze zdalnym, a następnie tuneluje ten port z powrotem za pośrednictwem SSH. Nie musisz otwierać żadnych portów (o ile możesz już SSH).
Jeśli twoje komputery mają zabawne ustawienia wyświetlania, lepiej zostaw -display :0segment w poleceniu SSH. x11vncnastępnie automatycznie spróbuje znaleźć odpowiedni ekran.
Jeśli używasz vncviewer z wolnym połączeniem ssh, twoje polecenie powinno wyglądać tak vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0(na Debianie / Ubuntu przeglądarka pochodzi z tightvnc) lub vncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0(na Red Hat / Fedora przeglądarka pochodzi z tigervnc), gdzie poziom jakości zarówno w Debianie, jak i w Redhat jest od 0 do 9, gdzie 9 jest najlepsze, ale wymaga szybkiego połączenia.
erik
@erik Dziękujemy za wyjaśnienie, jak używać go vncviewerdo powolnego połączenia. Ja osobiście prawdopodobnie ustawię, QualityLevel=4 or 5ponieważ 0 qualitylevel( 256 colorsjak sądzę) jest dla mnie zbyt nudny.
Khurshid Alam
1
Twoja „Metoda 2” jest idealna do szybkiego dostępu do fizycznego wyświetlacza zdalnie, bez specjalnych stałych ustawień. Musiałem dodać parametr -auth, jak wyjaśniono w komunikacie o błędzie, gdy wykonałem polecenie, ale poza tym działa idealnie. Dzięki!
Pierre
@gerky metoda 3 byłaby NoMachine, jest obecnie najszybsza i darmowa (pomimo braku opensource) i działa również na Androidzie
Aquarius Power
1
W przypadku metody 2 musiałem użyć go -auth guessi uruchomić jako root. Bardzo pomocne, dzięki!
Bob Carlson,
9
Przegląd rozwiązania
Zakładając, że masz już skonfigurowany OpenSSH Serverna komputerze hosta, musisz najpierw włączyć kontrolę pulpitu na komputerze hosta. Jeśli możesz najpierw włączyć kontrolę pulpitu na komputerze hosta lokalnie, przejdź do 1a. Jeśli musisz najpierw włączyć kontrolę pulpitu na komputerze hosta, przejdź do 1b.
Następnie utwórz profil klienta usług pulpitu zdalnego na komputerze klienckim, aby połączyć się z maszyną hosta za pośrednictwem tunelu SSH, a ostatecznie wyświetlić i kontrolować pulpit komputera hosta za pośrednictwem tunelu SSH.
Wykonaj następujące czynności na komputerze hosta:
vino-preferences
vino-preferences także w Dash pod Desktop Sharing
Kleszcz Allow other users to view your desktop
Kleszcz Allow other users to control your desktop
Kleszcz Require the user to enter this password
Wpisz trudne do odgadnięcia hasło
Blisko
1b. Zdalnie włącz zdalne sterowanie maszyną hosta
Wykonaj następujące czynności na komputerze klienckim, zastępując 123.123.12.3adres IP komputera hosta:
ssh -Y 123.123.12.3
-Y, Umożliwia zaufane przekazywanie X11. Zaufane przekazywanie X11 nie podlega kontrolom rozszerzenia X11 SECURITY.
vino-preferences
vino-preferences także w Dash pod Desktop Sharing
Kleszcz Allow other users to view your desktop
Kleszcz Allow other users to control your desktop
Kleszcz Require the user to enter this password
Wpisz trudne do odgadnięcia hasło
Blisko
Utwórz profil klienta usług pulpitu zdalnego na komputerze klienta
Wykonaj następujące czynności na komputerze klienckim:
remmina
remmina również w Dash pod Remmina Remote Desktop Client
Ctrl+ Nlub Połączenie> Nowe
Wpisz swój adres IP [123.123.12.3] tam, gdzie jest napisane Server
Przejdź do SSHzakładki
Kleszcz Enable SSH Tunnel
Skieruj swojego klienta pulpitu na niestandardowy port SSH
Ustaw SSH Authentication<username>tryb i
Połączyć
Wyświetl i kontroluj maszynę hosta
Na komputerze klienckim, gdy zostaniesz zapytany o <username>hasło, wprowadź je, aby utworzyć tunel SSH. Gdy zostaniesz zapytany o hasło VNC, wprowadź hasło, które poprzednio wprowadziłeś na maszynę hosta.
Jeśli ten krok powiedzie się, powinieneś teraz przeglądać i sterować pulpitem komputera hosta z komputera klienckiego przez tunel SSH.
Wydaje się to dość wyczerpujące, ale gdzie jest zdefiniowany niestandardowy port 12345 na hoście?
John T
Domyślam się, że potrzebujesz gdzieś polecenia ssh uruchomionego z klienta, na przykład: ssh -L 12345: localhost: 5900 użytkownik @ server_ip przed użyciem klienta zdalnego zgodnie z opisem.
John T
3
Byłem w stanie ustawić nową instalację Ubuntu 16.04 ze zdalnego połączenia ssh za pomocą następującego skryptu:
Cytowanie jest ważne dla każdego ustawienia łańcucha (pojedyncze tiki wewnątrz cudzysłowów). Aby dconf mógł pisać, potrzebuje dostępu do XWindows, dlatego właśnie potrzebna jest część DISPLAY eksportu. Myślę, że nadal musisz być zalogowany na pulpicie na rzeczywistym komputerze Ubuntu, aby połączyć się z VNC po tym. Polecenie zrzutu jest tylko po to, aby potwierdzić, że wszystkie ustawienia zostały zachowane, tak naprawdę nie jest to potrzebne.
Opcjonalnie możesz to zrobić, jeśli chcesz cały czas wyświetlać:
Jak uruchomić serwer Vino zdalnie bez przekazywania X (tylko wiersz poleceń)
Zaloguj się na komputerze zdalnym jako użytkownik, który udostępni pulpit i przekieruje port 5900 na ten sam port na localhost. W PuTTY przekierowanie ustawia się w Connection / SSH / Tunnels. W wierszu polecenia użyj:
ssh -L 5900:localhost:5900 user@remote-computer
Zainstaluj, vino-serverjeśli nie jest jeszcze zainstalowany. Na przykład:
sudo apt install vino
Włącz udostępnianie pulpitu (dopasowując numer wyświetlacza w 1. i 2. wierszu):
echo $DISPLAY
export DISPLAY=:0
dbus-launch --exit-with-session gsettings set org.gnome.Vino enabled true
dbus-launch --exit-with-session gsettings set org.gnome.Vino prompt-enabled false
dbus-launch --exit-with-session gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server
Uruchom przeglądarkę VNC i połącz się localhostz adresem serwera VNC.
Mam następujące. Wydaje się, że wszystko to zakłada, że jesteś już zalogowany do konsoli GUI? No protocol specified Failed to connect to Mir: Failed to connect to server socket: No such file or directory Unable to init server: Could not connect: Connection refused Cannot open display: Run 'vino-server --help' to see a full list of available command line options
glon
0
na podstawie odpowiedzi @ Khurshid Alam przedstawiam następujący fragment:
Otwórz „preferencje vino” z terminala lub „Udostępnianie pulpitu” za pomocą myślnika.
Na komputerze klienckim (z którego chcesz kontrolować interfejs użytkownika serwera).
Zachowaj ustawienia pokazane na poniższych obrazkach (ze zmianami w miejscu nazwy użytkownika i adresu IP).
Pułapki
Kiedy próbowałem ustawić preferencje vino na serwerze ze zdalnego komputera za pomocą SSH, zostało to zmienione, ale połączenie się nie udało. Musiałem to zrobić bezpośrednio na serwerze (nie zdalnie). Nie znam przyczyny tego zachowania.
Odpowiedzi:
Metoda 1:
Można to osiągnąć za pomocą vino vnc server & remmina (oba są dostarczane domyślnie z Ubuntu; jeśli nie, zainstaluj je przez uruchomienie
sudo apt-get install remmina
). Następnie uruchom następujące polecenia z komputera lokalnego w wierszu polecenia:ssh -Y gman@remote
. Użyj zaufanego przekazywania X11, w przeciwnym razie nie zadziałavino-preferences
. Otworzy się preferencje vino.Kliknij również
configure network automatically to accept connection
. Ale nie wpisuj żadnego hasła, jego kodowanie base64 . Następnie kliknij zamknij. Następnie uruchomić:Uruchomi serwer vino.
Wyloguj się z serwera:
Następnie otwórz remmina . Wybierz w
vnc
ramach protokołu.W
basic
zakładce umieść adres serwera wserver
polu.Na karcie ssh kliknij
enable ssh tunnel
. Poniżejssh authentication
może byćpassword
lubpublic key
:Kliknij zapisz. Następnie kliknij dwukrotnie nazwę połączenia (home-desktop, jak pokazano na rysunku), aby rozpocząć przeglądanie pulpitu zdalnego.
Metoda 2:
x11vnc
jest prostym serwerem VNC i nie musisz bawić się ustawieniami Gnome ani 500 zapór ogniowych, po prostu zainstalujx11vnc
na wszystkich swoich komputerach (z marionetką lub czymkolwiek, czego używasz do masowej kontroli).Następnie z komputera lokalnego:
Oczywiście zamiana
user@host
nazwy użytkownika i hosta / adresu IP komputera zdalnego.Następnie użyj klienta VNC do połączenia
localhost:5900
. Komenda SSH uruchamia serwer VNC na komputerze zdalnym, a następnie tuneluje ten port z powrotem za pośrednictwem SSH. Nie musisz otwierać żadnych portów (o ile możesz już SSH).Jeśli twoje komputery mają zabawne ustawienia wyświetlania, lepiej zostaw
-display :0
segment w poleceniu SSH.x11vnc
następnie automatycznie spróbuje znaleźć odpowiedni ekran.Źródło: askubuntu
źródło
vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0
(na Debianie / Ubuntu przeglądarka pochodzi z tightvnc) lubvncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0
(na Red Hat / Fedora przeglądarka pochodzi z tigervnc), gdzie poziom jakości zarówno w Debianie, jak i w Redhat jest od 0 do 9, gdzie 9 jest najlepsze, ale wymaga szybkiego połączenia.vncviewer
do powolnego połączenia. Ja osobiście prawdopodobnie ustawię,QualityLevel=4 or 5
ponieważ0 qualitylevel
(256 colors
jak sądzę) jest dla mnie zbyt nudny.-auth guess
i uruchomić jako root. Bardzo pomocne, dzięki!Przegląd rozwiązania
Zakładając, że masz już skonfigurowany
OpenSSH Server
na komputerze hosta, musisz najpierw włączyć kontrolę pulpitu na komputerze hosta. Jeśli możesz najpierw włączyć kontrolę pulpitu na komputerze hosta lokalnie, przejdź do 1a. Jeśli musisz najpierw włączyć kontrolę pulpitu na komputerze hosta, przejdź do 1b.Następnie utwórz profil klienta usług pulpitu zdalnego na komputerze klienckim, aby połączyć się z maszyną hosta za pośrednictwem tunelu SSH, a ostatecznie wyświetlić i kontrolować pulpit komputera hosta za pośrednictwem tunelu SSH.
1a. Lokalnie włącz zdalne sterowanie maszyną hosta
Wykonaj następujące czynności na komputerze hosta:
vino-preferences
także w Dash podDesktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
1b. Zdalnie włącz zdalne sterowanie maszyną hosta
Wykonaj następujące czynności na komputerze klienckim, zastępując
123.123.12.3
adres IP komputera hosta:vino-preferences
także w Dash podDesktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Utwórz profil klienta usług pulpitu zdalnego na komputerze klienta
Wykonaj następujące czynności na komputerze klienckim:
Remmina Remote Desktop Client
Ctrl+ Nlub Połączenie> Nowe
Server
SSH
zakładkiEnable SSH Tunnel
SSH Authentication
<username>
tryb iWyświetl i kontroluj maszynę hosta
Na komputerze klienckim, gdy zostaniesz zapytany o
<username>
hasło, wprowadź je, aby utworzyć tunel SSH. Gdy zostaniesz zapytany o hasło VNC, wprowadź hasło, które poprzednio wprowadziłeś na maszynę hosta.Jeśli ten krok powiedzie się, powinieneś teraz przeglądać i sterować pulpitem komputera hosta z komputera klienckiego przez tunel SSH.
źródło
Byłem w stanie ustawić nową instalację Ubuntu 16.04 ze zdalnego połączenia ssh za pomocą następującego skryptu:
Cytowanie jest ważne dla każdego ustawienia łańcucha (pojedyncze tiki wewnątrz cudzysłowów). Aby dconf mógł pisać, potrzebuje dostępu do XWindows, dlatego właśnie potrzebna jest część DISPLAY eksportu. Myślę, że nadal musisz być zalogowany na pulpicie na rzeczywistym komputerze Ubuntu, aby połączyć się z VNC po tym. Polecenie zrzutu jest tylko po to, aby potwierdzić, że wszystkie ustawienia zostały zachowane, tak naprawdę nie jest to potrzebne.
Opcjonalnie możesz to zrobić, jeśli chcesz cały czas wyświetlać:
źródło
Xnest
z X11 forwording, aby zdalnie rozpocząć sesję i przesłać ją na bieżący komputer. (Robię to od czasu do czasu z moją stroną pi)Używam
Xnest
tak:Xnest :1 -ac &
DISPLAY=:1 . /etc/X11/Xsession
źródło
Jak uruchomić serwer Vino zdalnie bez przekazywania X (tylko wiersz poleceń)
Zaloguj się na komputerze zdalnym jako użytkownik, który udostępni pulpit i przekieruje port 5900 na ten sam port na localhost. W PuTTY przekierowanie ustawia się w Connection / SSH / Tunnels. W wierszu polecenia użyj:
Zainstaluj,
vino-server
jeśli nie jest jeszcze zainstalowany. Na przykład:Włącz udostępnianie pulpitu (dopasowując numer wyświetlacza w 1. i 2. wierszu):
Uruchom przeglądarkę VNC i połącz się
localhost
z adresem serwera VNC.źródło
No protocol specified Failed to connect to Mir: Failed to connect to server socket: No such file or directory Unable to init server: Could not connect: Connection refused Cannot open display: Run 'vino-server --help' to see a full list of available command line options
na podstawie odpowiedzi @ Khurshid Alam przedstawiam następujący fragment:
ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost
Jest to jedno polecenie, które nie wymaga żadnej interakcji
Tworzy tunel SSH z przekierowaniem portów, uruchamia się
x11vnc
w dość bezpieczny sposób oraz uruchamia i łączy przeglądarkę VNCWymaga x11vnc na hoście docelowym, ale nie wymaga dalszej konfiguracji
źródło
Na komputerze serwera.
Na komputerze klienckim (z którego chcesz kontrolować interfejs użytkownika serwera).
Pułapki
źródło