Podczas próby połączenia SSH z hostem otrzymałem następujący komunikat xauth
:
/ usr / bin / xauth: limit czasu w pliku uprawnień do blokowania /home/sam/.Xauthority
UWAGA: Próbowałem zdalnie wyświetlić interfejs GUI X11 za pośrednictwem połączenia SSH, więc musiałem xauth
móc $HOME/.Xauthority
pomyślnie utworzyć plik, ale jak wskazał ten komunikat, najwyraźniej tak nie było.
Próby uruchomienia dowolnych aplikacji opartych na X11, takich jak na przykład xeyes
ten komunikat:
$ xeyes
X11 connection rejected because of wrong authentication.
Error: Can't open display: localhost:10.0
Jak mogę rozwiązać ten problem?
Odpowiedzi:
Uruchomienie
strace
na zdalnym systemie, w którymxauth
zawodzi, pokaże, co się dziejexauth
.Na przykład
Więc
xauth
próbuje otworzyć plik i już istnieje. Plik winowajcy to/home/sam/.Xauthority-c
. Możemy potwierdzić obecność tego pliku w systemie zdalnym:Poprawka
Jak się okazuje. Te pliki są plikami blokującymi
.Xauthority
, więc ich usunięcie rozwiązuje problem.Po usunięciu plików wyjdź z połączenia SSH, a następnie ponownie połącz. Umożliwi
xauth
to ponowne uruchomienie z powodzeniem.Teraz jesteśmy w stanie uruchomić
xauth list
i X11 aplikacje bez problemu.GUI
Alternatywna metoda rozwiązania problemu
Natknąłem się na ten post zatytułowany: xauth: błąd w blokowaniu pliku autoryzacji .Xauthority [linux, ssh, X11], który wspomina o użyciu
xauth -b
do łamania wszelkich blokowanych plików, które mogą się zawieszać.xauth
wydaje się, że strona podręcznika man to kopii zapasowej:Referencje
źródło
lsof
. Widziałem je wcześniej, ale nie pamiętam gdzie. Myślałem, że rozmawialiśmy o nich wcześniej, ale nie mogłem znaleźć żadnej wzmianki o nich na stronie.root:root
zamiastuser:user
. Naprawione przezchown user:user /home/user
.Przyczyną problemu może być brak uprawnień do zapisu w katalogu $ HOME.
Właśnie dlatego dostałem tę wiadomość:
Oto jak sprawdziłem pozwolenie:
Jeśli to jest problem, musisz upewnić się, że masz uprawnienia do zapisu w $ HOME:
źródło
Mam inną odpowiedź na pytanie, które nękało mnie, zanim zrozumiałem problem. Problemem jest błąd w systemie operacyjnym Fedory i jego pochodnych, jak się później zorientowałem. Jeśli problem nie jest taki, jak wskazano w zaakceptowanej odpowiedzi i / lub nie korzystasz z Fedory, RedHat, Korory itp., To ci to nie pomoże.
Problem
Jak powiedział slm użytkownika, uruchomienie strace da ci wskazanie problemu, ale w tym konkretnym przypadku błędu, wynik jest inny:
Żeby było jasne, oznacza to, że kod powrotu EACCES, który jest odmowa zgody. Różni się to od problemu użytkownika slm, w którym miał kod powrotu EEXIST, co oznacza, że plik istnieje. Tak więc, w przypadku kodu powrotu EACCES, pierwszą rzeczą, którą sprawdzasz, jest: czy skonfigurowano moje uprawnienia do domu, aby móc pisać w moim katalogu domowym? Najpierw powinieneś sprawdzić, czy masz flagę zapisu w swoim katalogu domowym dla własnego użytkownika. Jeśli to zrobisz, możesz być ofiarą opisanego poniżej błędu.
Bug
Przez kilka wyszukiwań w Google udało mi się w końcu znaleźć kogoś z podobnym problemem, co doprowadziło mnie do zgłoszenia błędu Fedory. Dla tych z Was, którzy chcą o tym przeczytać: https://bugzilla.redhat.com/show_bug.cgi?id=772992
Obejście
Obejście problemu:
Gdy ponownie włączysz SSH, w tym momencie powinno być w porządku i powinieneś być w stanie ponownie pomyślnie przenieść sesję X.
EDYCJA (i inne alternatywne obejścia):
Aby być jak najbardziej kompletnym, inni użytkownicy stwierdzili w raporcie o błędzie, że powyższa poprawka nie działała dla nich - zdarzyło się, że zadziałało dla mnie. Kolejną próbą obejścia tego problemu (osobiście nie zweryfikowałem tego obejścia):
Inna osoba wspomina coś o GDM, o którym nie mam żadnej wiedzy. Jeśli to dotyczy ciebie, polecam przeczytanie jego postu w BugZilli i sprawdzenie, czy jego komentarz coś dla ciebie znaczy.
źródło
Konfiguracja SELinuksa to pierwsza rzecz do sprawdzenia, z ...
lub
Jeśli konfiguracja SELinux jest ustawiona na „Wymuszanie” , może to powodować problem „xauth” .
Możesz tymczasowo ustawić go w tryb „permisive” w następujący sposób (aby wykluczyć ten problem jako podstawową przyczynę problemu) .
Następnie postępuj zgodnie z samouczkiem SELinux, aby wprowadzić odpowiednią konfigurację lub ją wyłączyć, jeśli wolisz inną metodę bezpieczeństwa (np. Edytując plik konfiguracyjny / etc / selinux / config w RHEL v.6)
źródło