Rozważmy sytuację, w której loguję się przez SSH z komputera A na komputer B, mam sesję X na komputerze A i chcę uruchomić program X na B.
ssh -X B
sprawia, że działa to przejrzyście. Ale co, jeśli brakuje konfiguracji serwera X11Forwarding yes
, nie mam uprawnień roota na serwerze, a administrator serwera jest obojętny?
Oczywiście możliwe jest przekazanie połączenia X11, ponieważ mogę przesyłać cokolwiek chcę przez kanał SSH. W rzeczywistości, jeśli lokalny serwer X zezwala na połączenia TCP, jest to tak proste, jak ssh -R 6010:localhost:6000
(do dostosowania do wyświetlanych liczb). Co z typowym przypadkiem, w którym lokalny serwer X zezwala tylko na połączenia gniazd? Jak mogę wygodnie i bezpiecznie przekazywać X przy minimalnych wymaganiach instalacyjnych (szczególnie na B)?
źródło
.ssh/config
po stronie klienta i po stronie.profile
serwera, a następnie po prostu uruchomssh B
”./tmp/.X11-unix/X0
jest to gniazdo domeny unix, a nie FIFO, więc każda próba przekierowania kończy sięENXIO: No such device
.Rozwiń dodatkowy serwer X za pomocą Xephyr. Ma to na celu zapewnienie bezpieczeństwa - zapobiega to atakowi zdalnego systemu na twój.
Użyj SSH, aby przekazać zdalne gniazdo do gniazda Xephyr. SSH obsługuje również przekazywanie gniazd uniksowych.
Ustaw poprawnie zmienne środowiskowe na zdalnym serwerze.
źródło