Odpowiedzi:
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ć:
sudo -s
export DISPLAY=:0.0
xhost +
/usr/lib/vino/vino-server &
Uruchomi serwer vino.
Wyloguj się z serwera:
xhost -
Press CTRL+C twice
exit
exit
Następnie otwórz remmina . Wybierz w vnc
ramach protokołu.
W basic
zakładce umieść adres serwera w server
polu.
Na karcie ssh kliknij enable ssh tunnel
. Poniżej ssh authentication
może być password
lub public key
:
Kliknij zapisz. Następnie kliknij dwukrotnie nazwę połączenia (home-desktop, jak pokazano na rysunku), aby rozpocząć przeglądanie pulpitu zdalnego.
x11vnc
jest prostym serwerem VNC i nie musisz bawić się ustawieniami Gnome ani 500 zapór ogniowych, po prostu zainstaluj x11vnc
na wszystkich swoich komputerach (z marionetką lub czymkolwiek, czego używasz do masowej kontroli).
Następnie z komputera lokalnego:
ssh user@host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"
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
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.
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!
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.
Wykonaj następujące czynności na komputerze hosta:
vino-preferences
vino-preferences
także w Dash pod Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Wykonaj następujące czynności na komputerze klienckim, zastępując 123.123.12.3
adres IP komputera hosta:
ssh -Y 123.123.12.3
vino-preferences
vino-preferences
także w Dash pod Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Wykonaj następujące czynności na komputerze klienckim:
remmina
Remmina Remote Desktop Client
Ctrl+ Nlub Połączenie> Nowe
Server
SSH
zakładkiEnable SSH Tunnel
SSH Authentication
<username>
tryb iNa 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.
Byłem w stanie ustawić nową instalację Ubuntu 16.04 ze zdalnego połączenia ssh za pomocą następującego skryptu:
#! / bin / bash eksport WYŚWIETLACZ =: 0 czytaj -e -p "Hasło VNC: hasło" -i "ubuntu" dconf write / org / gnome / desktop / remote-access / enabled true dconf write / org / gnome / desktop / remote-access / prompt-prompt false dconf write / org / gnome / desktop / remote-access / authentication-metody "['vnc']” dconf write / org / gnome / desktop / remote-access / wymagają-szyfrowania false dconf write / org / gnome / desktop / remote-access / vnc-password \ "\ '$ (echo -n $ password | base64) \' \" dconf dump / org / gnome / desktop / remote-access / sudo service lightdm restart
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ć:
dconf write / org / gnome / desktop / wygaszacz ekranu / blokada włączona false dconf write / org / gnome / desktop / wygaszacz ekranu / ubuntu-lock-on-suspend false dconf write / org / gnome / desktop / session / idle-delay "uint32 0"
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-server
jeś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ę localhost
z adresem serwera VNC.
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ę VNC
Wymaga x11vnc na hoście docelowym, ale nie wymaga dalszej konfiguracji
Na komputerze serwera.
Na komputerze klienckim (z którego chcesz kontrolować interfejs użytkownika serwera).
Pułapki