Dnes se seznámíme s méně známou, zajímavou a užitečnou funkcí o Linuxu. Jsem si jistý, že většina z vás zná SSH. Ke vzdáleným linuxovým systémům můžeme přistupovat bezpečně přes SSH. Věděli jste však, že je možné přeposílat X přes SSH a spouštět grafické aplikace na dálku? Ano! Tento mechanismus je známý jako Přesměrování X11 . V této příručce se chystáme nakonfigurovat předávání X11 pomocí SSH v Linuxu.
Co je předávání X11?
Přesměrování X11 je metoda umožňující uživateli spustit grafické aplikace nainstalované na vzdáleném systému Linux a přeposlat tato okna (obrazovku) aplikace do místního systému. Vzdálený systém nemusí mít X server nebo grafické desktopové prostředí. Proto konfigurace předávání X11 pomocí SSH umožňuje uživatelům bezpečně spouštět grafické aplikace přes relaci SSH.
Abych to řekl laicky,
- Připojujeme se ke vzdálenému systému přes SSH,
- A pak spustíme aplikaci GUI (která je nainstalována ve vzdáleném systému) z této relace SSH,
- Aplikace GUI nyní běží na vzdáleném systému, ale okno aplikace se zobrazuje v našem lokálním systému. Můžeme tedy použít tento vzdálený program GUI na vašem místním systému jako způsob, jakým používáme lokálně nainstalovaný program.
Průhledná? Nyní pojďme dál a podívejme se, jak spouštět vzdálené aplikace GUI přes relaci SSH.
Konfigurace X11 Forwarding pomocí SSH v Linuxu
Pro účely této příručky budu používat následující dva systémy:
- Vzdálený server – minimální server CentOS 8 (bez GUI).
- Místní systém – Ubuntu 20.04 LTS s Gnome DE.
Konfigurace předávání X11 je triviální.
Ujistěte se, že jste nainstalovali "xauth" na vašem vzdáleném serverovém systému. Pokud není nainstalován, spusťte následující příkaz jako uživatel root nebo sudo:
# dnf install xorg-x11-xauth
Přejděte do svého vzdáleného systému (v mém případě je to CentOS 8) a upravte "/etc/ssh/ssh_config" soubor pomocí vašeho oblíbeného editoru:
# nano /etc/ssh/ssh_config
Přidat/upravit následující řádek:
[...] X11Forwarding yes
Nakonfigurujte X11 Forwarding pomocí SSH v Linuxu
Stiskněte Ctrl+O pro uložení a Ctrl+X pro zavření souboru. Restartujte službu sshd, aby se změny projevily:
# systemctl restart sshd
Hotovo! Nastavili jsme předávání X11.
Nyní přejděte do svého klientského systému (v mém případě je to Ubuntu 20.04) a přistupte ke vzdálenému serveru přes SSH pomocí příkazu:
$ ssh -X [email protected]
Zde -X volba se používá k povolení předávání X11 přes SSH. Nahraďte „[email protected]“ uživatelským jménem a IP adresou vzdáleného serveru.
Poprvé uvidíte následující varovnou zprávu.
/usr/bin/xauth: file /root/.Xauthority does not exist
Nicméně .Xauthority
soubor by měl být automaticky vygenerován při prvním přihlášení, takže následné přihlášení by mělo být v pořádku.
Dále spusťte všechny aplikace GUI z této relace SSH. Na svém serveru CentOS 8 jsem již nainstaloval grafický textový editor Gedit, takže jej spustím příkazem:
# gedit
Obrazovka okna gedit GUI se nyní objeví ve vašem místním systému.
Spouštějte vzdálené grafické aplikace přes relaci SSH v Linuxu
S aplikací Gedit nainstalovanou na vzdáleném serveru můžete pracovat pomocí displeje, myši a klávesnice vašeho místního systému.
I když můj server CentOS 8 nemá grafické uživatelské rozhraní, mohu otevřít grafický editor Gedit a používat jej z místního systému Ubuntu. Zde je vizuální ukázka:
Nakonfigurujte předávání X11 v Putty
Pokud používáte Putty klient pro přístup ke vzdáleným systémům, zadejte IP nebo název hostitele vzdáleného systému na kartě Session:
Připojte se ke vzdálenému systému pomocí Putty
Dále přejděte na Připojení -> SSH -> X11 a povolte možnost přesměrování X11. Klikněte na Otevřít pro vytvoření nové relace Putty:
Nakonfigurujte přesměrování X11 v Putty
Zadejte uživatelské jméno a heslo vzdáleného serveru. Jakmile se připojíte ke vzdálenému systému přes Putty, spusťte jakoukoli X aplikaci nainstalovanou na vzdáleném serveru.
Spouštějte grafické aplikace přes Putty session
Začněte komunikovat se vzdálenou aplikací GUI ze svého místního systému!