xauth nie tworzy pliku .Xauthority

28

Kiedy ssh do bezgłowego systemu Linux Mint 17, nie tworzy aktualizacji / pliku .Xauthority.

Ponadto po uruchomieniu xauthotrzymuję odpowiedź:

marty@N40L ~ $ xauth
xauth:  file /home/marty/.Xauthority does not exist
Using authority file /home/marty/.Xauthority
xauth>exit
marty@N40L ~ $ xauth
xauth:  file /home/marty/.Xauthority does not exist
Using authority file /home/marty/.Xauthority
xauth>

Nie tworzy pliku.

EDYTOWAĆ:

Kiedy podłączam monitor, a następnie loguję się lokalnie, plik jest tworzony, ale kiedy próbuję dodać wpis (ponieważ mój SSH nie robi tego dla mnie):

marty@N40L ~ $ xauth list
N40L/unix:0  MIT-MAGIC-COOKIE-1  34eee3b15cdb281021502d40dfba1cf2
localhost.localdomain/unix:0  MIT-MAGIC-COOKIE-1  34eee3b15cdb281021502d40dfba1cf2
marty@N40L ~ $ ls -d .X*
-rw------- 1 marty marty 115 Sep  3 12:03 .Xauthority
marty@N40L ~ $ xauth generate $DISPLAY .
PuTTY X11 proxy: wrong authorisation protocol attemptedxauth: (argv):1:  unable to open display "localhost:10.0".

Nawiasem mówiąc, robienie netstat --listenpokazu słuchania portu:

tcp 0 0 localhost:6010 *:* LISTEN

AGH, więcej informacji. Wylogowałem się z sesji X na serwerze, a teraz plik .Xauthority zniknął. Wygląda na to, że plik jest tam TYLKO po zalogowaniu lokalnym. Czy ktoś może mi powiedzieć, dlaczego lub jak to naprawić?

NOWY ROZWÓJ:

W systemie stworzyłem dziewiczego użytkownika o nazwie „test”. Następnie zalogowałem się i bez ŻADNYCH innych poleceń uruchomiłem xeyes. Który działał! Więc TYLKO użytkownik „marty” nie może xforward. Jak skopiować ustawienia z testu na Marty?

wkdmarty
źródło
Czy powiedziałeś mu, aby utworzyć plik? ssh -Xumożliwia przekazywanie X11.
user1686
Tak, używam Putty w systemie Windows, konfiguracja do przekazywania (działa po podłączeniu do innego serwera Mint). Ale plik nie został utworzony, więc pomyślałem, że dodam go ręcznie, xauth też nie utworzy go ręcznie.
wkdmarty
Lokalne Xwindows tworzy plik .Xauthority, ale sesja Putty SSH nie. Mimo że pokazuje, że nasłuchuje połączenia.
wkdmarty

Odpowiedzi:

34

Żeby zgłosić, miałem podobny problem. Ale w moim przypadku po prostu wykonuję następujące kroki :

Wykonaj następujące kroki, aby utworzyć $HOME/.Xauthorityplik.

Zaloguj się jako użytkownik i potwierdź, że znajdujesz się w katalogu osobistym użytkownika.

# Rename the existing .Xauthority file by running the following command
mv .Xauthority old.Xauthority 

# xauth with complain unless ~/.Xauthority exists
touch ~/.Xauthority

# only this one key is needed for X11 over SSH 
xauth generate :0 . trusted 

# generate our own key, xauth requires 128 bit hex encoding
xauth add ${HOST}:0 . $(xxd -l 16 -p /dev/urandom)

# To view a listing of the .Xauthority file, enter the following 
xauth list 

Od tego .Xauthoritymomentu nie ma już problemów z plikiem.

Dzięki i podziękowania dla srinivasan .

tona
źródło
1
w moim przypadku miałem zmienną środowiskową XAUTHORITY wskazującą na coś innego (nieostrożny błąd), używając tego [ prefetch.net/blog/index.php/2011/11/01/… wątku byłem w stanie to odkryć i rozwiązać błąd. Za pomocą strace xauthwskazał niepoprawną ścieżkę określoną w zmiennej. Powinienem również dodać, że otrzymywałem błędy blokowania aswel, między innymi
Cybex
1
W moim przypadku musiałem wykonać tylko kroki od 1 do 3. W krokach 4 i 5 faktycznie nie działało.
Richard Ayotte
Muszę zrobić xauth generate :0 . trustedpo każdym poleceniu, useraby otworzyć ekran jako root. Czy mogę to naprawić?
Timo,
xhost +pomógł otworzyć x-aplikacje jako root.
Timo,
7
krok 3 daje mi błąd:xauth: (argv):1: unable to open display ":0".
simpleuser
4

Wystarczy uzupełnić doskonałe tony „s odpowiedź .

Kiedyś miałem dokładnie ten sam problem, ponieważ mój katalog domowy został zapełniony w 100%. Po połączeniu sshutworzył pusty ~/.Xauthorityi nie był w stanie napisać do niego żadnego pojedynczego wpisu (tak, że xauth listzawsze produkował pusty wynik).

Sugeruję więc, aby zawsze sprawdzać wolne miejsce (np . df -h:) i weryfikować to xauth generatei xauth addrzeczywiście miało jakikolwiek efekt ( xauth list).

Bas
źródło
1

Po odkryciu, że to nie był system, dodając użytkownika testowego (którego przekierowanie x działało „po wyjęciu z pudełka”), pomyślałem, że zacznę kopiować pliki startowe .bash *, aby virginise „zepsutego” użytkownika.

Żaden z plików nie był inny, więc następnie usunąłem katalog .ssh użytkowników. Kiedy się zalogowałem, narzekałem: „Serwer odmówił naszego klucza”, ale mogłem się zalogować za pomocą hasła. Po zalogowaniu mogłem x przesyłać dalej idealnie.

Spróbuję teraz ponownie skonfigurować klucz i sprawdzić, czy mogę go uruchomić. Potem wróci do normy.

wkdmarty
źródło
1

Przeniesienie .sshkatalogu na bok sprawiło, że przekazywanie X działało dla mnie.

Poprzez proces eliminacji znalazłem plik w ~ / .ssh, który nazywał się „rc” i zawierał:

echo "Wecome to $(hostname), $(whoami)"

Nigdy tego nie stworzyłem i nie mam pojęcia, skąd się wziął. Usunięcie go naprawili problem, i moje authorized_keys, known_hostsi kluczowe pliki wszystko może pozostać nienaruszone.

Billq
źródło
1

W ramach uprawnień roota otwórz /etc/ssh/sshd_configi odkomentuj następujące wiersze, jeśli są komentowane:

X11 Przekazywanie tak

X11DisplayOffset 10

X11UseLocalhost tak

Następnie wyloguj się i zaloguj ponownie z -Xflagą ssh. Nie musisz ustawiać ani wyłączać DISPLAYzmiennej środowiskowej.

warszawa
źródło
0

Ten sam problem napotkałem na dwóch serwerach, które technicznie były węzłami siostrzanymi. Ból w ogonie, ponieważ nie mogłem zrozumieć, co było inne. Okazuje się, że katalog / home był pełny, więc pliki .Xauthority nie mogły się poprawnie zapełnić. Po zlokalizowaniu plików zajmujących zbyt dużo miejsca i wyczyszczeniu ich nowe pliki .Xauthority zostały poprawnie utworzone.

Linux_User
źródło