Home
» LINUX
»
Hoe stel je X11-forwarding in op Linux via SSH?
Hoe stel je X11-forwarding in op Linux via SSH?
Met X11-forwarding kunt u een grafische Linux-applicatie op een externe computer uitvoeren en het venster ervan op uw lokale bureaublad weergeven via SSH. U kunt dit instellen door forwarding in te schakelen op de externe SSH-server, te controleren of de server X11 ondersteunt xauth, te controleren of uw lokale bureaublad een X-display heeft en verbinding te maken met X11 ssh -X. Dit stuurt individuele applicatievensters door; het creëert geen volledige externe bureaubladsessie.
Wat je nodig hebt voordat je het instelt
De computer waarop je het SSH-commando typt, is de client . Deze heeft de OpenSSH-client en een actieve grafische desktopsessie met een X-display nodig. Veel Linux-desktops bieden dit direct of via XWayland wanneer de sessie Wayland gebruikt. Als echo "$DISPLAY"er op de lokale desktop niets wordt weergegeven, is er geen display dat SSH in die shell kan gebruiken.
De externe computer is de server . Deze heeft de OpenSSH-server en het xauthhulpprogramma nodig waarmee SSH de tijdelijke autorisatiecookie kan aanmaken die wordt gebruikt voor het doorsturen van het scherm. Installeer deze op Debian of Ubuntu op het externe systeem met ` pip install openSSH` sudo apt updateen `pip sudo apt install openssh-server xauthinstall openSSH`. Gebruik op een andere distributie de pakketbeheerder om de OpenSSH-server en het pakket dat `openSSH` levert te installeren xauth. Zorg ervoor dat een gewone SSH-login blijft werken voordat u de configuratie wijzigt.
Controleer of de lokale terminal de OpenSSH-client kan uitvoeren; de externe server heeft ook xauth nodig.
X11-forwarding via SSH instellen
1. Schakel doorsturen in de serverconfiguratie in.
Bewerk op de externe computer het serverconfiguratiebestand , meestal /etc/ssh/sshd_config, met een editor met beheerdersrechten:
sudoedit /etc/ssh/sshd_config
Zoek een bestaande actieve X11Forwardinginstelling en wijzig deze naar:
X11Forwarding yes
Als de instelling ontbreekt, voeg deze dan toe in de globale sectie vóór elk Matchblok. Sommige distributies laden ook bestanden vanuit /etc/ssh/sshd_config.d/; controleer de meegeleverde bestanden op conflicterende instellingen. Een Matchregel of DisableForwarding yeskan nog steeds het doorsturen voor een specifiek account voorkomen. Laat X11UseLocalhostde instelling op de standaardwaarde staan, tenzij u een specifiek compatibiliteitsprobleem hebt: OpenSSH koppelt de doorstuurproxy normaal gesproken aan loopback. De officiële sshd_config-handleiding beschrijft deze serveropties.
De serverinstellingen horen in sshd_config, niet in het SSH-clientbestand ssh_config.
2. Valideer de configuratie en herlaad SSH.
Controleer vóór het herladen van de daemon het bestand op syntaxfouten en bevestig de juiste doorstuurwaarde:
Het eerste commando zou zonder foutmelding moeten eindigen; het tweede zou een foutmelding moeten geven x11forwarding yes. Als u Matchregels gebruikt, test dan de effectieve configuratie voor de betreffende gebruiker en verbinding zoals beschreven in de OpenSSH-handleiding. Corrigeer eventuele fouten voordat u de configuratie opnieuw laadt, zodat u de SSH-toegang niet verstoort.
Herlaad de servicenaam die door uw distributie wordt gebruikt. Debian en Ubuntu gebruiken doorgaans:
sudo systemctl reload ssh
Fedora- en RHEL-systemen gebruiken doorgaans:
sudo systemctl reload sshd
Als herladen niet wordt ondersteund, gebruik restartdan dezelfde service. Houd de huidige sessie open en test een nieuwe verbinding voordat u deze sluit. De documentatie van Ubuntu over de OpenSSH-server beschrijft het serverbestand en de configuratiefragmenten die op Ubuntu worden gebruikt.
3. Maak verbinding vanaf het lokale Linux-bureaublad.
Vraag aan de clientzijde om onbetrouwbare X11-doorsturing met -X:
ssh -X user@server.example.com
Vervang de voorbeeldgebruikersnaam en host door uw eigen gegevens. Als de SSH-server op een niet-standaard poort luistert, voeg dan het poortnummer toe met een dubbele punt -p(:).
ssh -X -p 2222 user@server.example.com
Na het inloggen start u een grafisch programma dat op de externe host is geïnstalleerd. Om snel te controleren xclockof de testapplicatie beschikbaar is, kunt u een ander geïnstalleerd GUI-programma starten. SSH stelt de DISPLAYwaarde van de externe sessie automatisch in en stuurt de X11-verbinding door; kopieer uw lokale weergavewaarde niet naar de server en stel deze ook niet handmatig in.
Deze -Xoptie vraagt om X11-forwarding bij het starten van de SSH-sessie.Een doorgestuurde GUI-applicatie verschijnt als een venster op het lokale bureaublad terwijl de SSH-sessie open blijft.
Beveiliging en probleemoplossing
-XStandaard gebruiken . Deze -Yoptie maakt vertrouwde doorsturing mogelijk, waardoor X11-beveiligingsbeperkingen worden opgeheven en de externe applicatie bredere toegang krijgt tot uw lokale scherm. Gebruik deze optie alleen met een server en applicatie die u vertrouwt. OpenSSH waarschuwt dat X11-doorsturing het scherm van de client kwetsbaar kan maken voor aanvallen; raadpleeg de ssh-handleiding en de ssh_config-handleiding voor het onderscheid tussen vertrouwde en niet-vertrouwde doorsturing.
"X11-doorstuurverzoek mislukt": Controleer de effectieve waarde van de server X11Forwarding, bevestig dat xauthdeze op de externe host is geïnstalleerd en zoek naar een beperkende Matchblokkering of DisableForwardinginstelling.
DISPLAYAls de externe sessie leeg is: Verbreek de verbinding en maak opnieuw verbinding met ssh -X. Controleer of de lokale shell een werkend grafisch scherm heeft en of de verbinding de zojuist geconfigureerde server bereikt.
Het venster geeft aan dat er geen scherm kan worden geopend: Controleer of uw lokale desktopsessie nog actief is. Een shell zonder toegang tot het bureaubladscherm kan geen doorgestuurde vensters weergeven.
xclockNiet gevonden: Het testprogramma ontbreekt. Probeer een GUI-applicatie die al op de externe machine is geïnstalleerd; dit bericht alleen bewijst niet dat SSH-forwarding defect is.
X11-forwarding is handig voor incidenteel gebruik van tools op afstand, maar grafische toepassingen die vaak opnieuw worden getekend, kunnen traag aanvoelen via een verbinding met hoge latentie. Gebruik voor een volledig bureaublad of grafisch intensief werk een oplossing voor extern bureaublad die daarvoor is ontworpen.