Wiadomości te można wyeliminować za pomocą 1 z 3 metod, używając tylko opcji SSH. Zawsze możesz wysyłać wiadomości /dev/null
również, ale te metody próbują poradzić sobie z wiadomością poprzez konfigurację, a nie tylko ich wychwytywanie i odrzucanie.
Metoda nr 1 - zainstaluj xauth
Serwer, na którym jesteś zdalnie, narzeka, że nie może utworzyć wpisu w .Xauthority
pliku użytkownika , ponieważ xauth
nie jest zainstalowany. Możesz więc zainstalować go na każdym serwerze, aby pozbyć się tej irytującej wiadomości.
Na Fedorze 19 instalujesz xauth
tak:
$ sudo yum install xorg-x11-xauth
Jeśli następnie spróbujesz ssh
wejść na serwer, zobaczysz komunikat, że w .Xauthority
pliku użytkownika tworzony jest wpis .
$ ssh root@server
/usr/bin/xauth: creating new authority file /root/.Xauthority
$
Kolejne logowanie nie będą już wyświetlać tego komunikatu.
Metoda nr 2 - wyłącz ją przez ForwardX11
Możesz poinstruować ssh
klienta, aby nie próbował włączać przekazywania X11, włączając parametr SSH ForwardX11.
$ ssh -o ForwardX11=no root@server
Możesz zrobić to samo z -x
przełącznikiem:
$ ssh -x root@server
Spowoduje to tylko tymczasowe wyłączenie tej wiadomości, ale jest dobrą opcją, jeśli nie możesz lub nie chcesz zainstalować xauth
na zdalnym serwerze.
Metoda nr 3 - wyłącz ją za pomocą sshd_config
Zazwyczaj jest to ustawienie domyślne, ale jeśli nie jest, możesz skonfigurować sshd
serwer tak, aby X11 Forwarding był wyłączony /etc/ssh/sshd_config
.
X11Forwarding no
Z 3 metod, których zwykle używam # 2, ponieważ często chcę X11Forwarding
włączyć większość moich serwerów, ale potem nie chcę widzieć X11....
ostrzeżeń
$ HOME / .ssh / config
Przez większość czasu te wiadomości nawet się nie wyświetlają. Są zwykle obecne tylko wtedy, gdy w $HOME/.ssh/config
pliku znajdują się następujące wpisy , u góry.
ServerAliveInterval 15
ForwardX11 yes
ForwardAgent yes
ForwardX11Trusted yes
GatewayPorts yes
Więc to ta konfiguracja ostatecznie napędza generowanie tych X11..
komunikatów, więc metoda nr 2 wydaje się być najbardziej odpowiednia, jeśli chcesz ForwardX11 yes
domyślnie działać , ale następnie selektywnie wyłącz ją dla niektórych połączeń z ssh
perspektywy klienta .
Bezpieczeństwo
Generalnie nie zaleca się ciągłego działania ForwardX11 yes
. Więc jeśli chcesz obsługiwać połączenia SSH w najbezpieczniejszym możliwym budynku, najlepiej wykonać następujące czynności:
- Nie dołączaj
ForwardX11 yes
do swojego $HOME/.ssh/config
pliku
- Korzystaj z ForwardingX11 tylko wtedy, gdy potrzebujesz
ssh -X user@server
- Jeśli możesz, wyłącz
X11Forwarding
całkowicie na serwerze, aby został niedozwolony
Referencje
W moim przypadku dodanie tego ciągu w celu
/etc/ssh/sshd_config
rozwiązania problemu:źródło
locahost
przekazywanie X11. Przekazywanie X11 na pozostałych dwóch nadal działa. Masz pojęcie, co mogło się zmienić?Natknąłem się na to dzisiaj i uderzyłem się przez chwilę, aż natknąłem się na ustawienie ssh:
Jeśli jest to RHEL 7 (centOS, OEL itp.) I ma wyłączony ipv6, potrzebuje:
ustawiony w / etc / ssh / sshd_config.
źródło
Kolejna niewielka odmiana byłaby, gdybyś chciał przestać widzieć ten komunikat (tj. Przestać próbować przekierowywać X11) dla niektórych serwerów, ale zachowując domyślną wartość ForwardX11 tak dla wszystkich innych połączeń.
W tym scenariuszu można wyłączyć przekazywanie X11 dla określonego hosta (lub zakresu) w ~ / .ssh / config. Coś takiego:
Potwierdzenie: Jest to niewielkie upiększenie istniejącej (i bardzo kompletnej) istniejącej odpowiedzi - ponieważ nie mogłem komentować!
źródło
Jeśli uruchamiasz klienta w trybie pełnym (
ssh -v user@host
) daje ciale
xauth
faktycznie jest zainstalowany na serwerze, prawdopodobnie dzieje się tak dlatego, że sshd szuka pliku wykonywalnego xauth w złym miejscu ( zwykle / usr / X11R6 / bin / xauth ). Można to naprawić, ustawiającw / etc / sshd / sshd_config (lub cokolwiek, na czym skonfigurowany jest twój serwer).
źródło
Konfigurowanie przekazywania X11 dla poszczególnych hostów
Oprócz wszystkich doskonałych odpowiedzi już tutaj, możesz skonfigurować
ForwardX11
dla każdego hosta, więc jeśli tak sięserver
nie powiedzie, możesz dodać wpis do~/.ssh/config
pliku w następującej formie:Możesz nawet użyć takich wpisów jako aliasów dla całych zestawów konfiguracji
Jest to szczególnie przydatne, jeśli skonfigurowałeś nazwy serwerów autouzupełniania dla SSH i SCP .
źródło
Natknąłem się na to pytanie po uruchomieniu z
sshd-xauth
błędem prawie dziesięcioletnim. Zgłaszane są dwa rozwiązania, pierwsze obejściexauth
, drugie rozwiązanie błędu.Rozwiązanie 1 - obejście xauth
Zdalne
/etc/ssh/sshd_config
:Pilot
~/.Xauthority
jest pusty lub nie istniejeLokalnie:
W teście wersja lokalna działała na Ubuntu 18.05, na zdalnym Debian Jesse.
Opublikowałem również to rozwiązanie jako odpowiedź na inne pytanie.
Rozwiązanie 2 - usuń błąd sshd / xauth
To rozwiązanie jest zbliżone do powyższego rozwiązania @systempoet , chociaż samo to nie wystarczyło.
Oprócz modyfikacji
/etc/ssh/sshd_config
na pilocie:/etc/hosts
na pilocie został również zmodyfikowany:Jeśli któryś z nich został skomentowany, komunikat o błędzie
pojawił się po
ssh -X ...
telefonie. Ponadto/var/log/auth.log
pokazał błąd:Przetestuj, aby wygenerować błąd (przed naprawą):
Maszyna lokalna:
źródło
Jedną ważną kwestią, na którą należy zwrócić uwagę po wprowadzeniu zmian w konfiguracji, jest to, że będziesz musiał zabić sshd, aby przejął zmiany:
będąc użytkownikiem root.
źródło
Ustaw następujące 2 opcje
/etc/ssh/sshd_config
w swoim hoście RHELX11Forwarding yes X11UseLocalhost no
sudo /etc/init.d/sshd reload
sudo yum install xauth
ssh -X yourname@rhelbox
źródło