xauth не создает.Xauthority файл

Когда я захожу в безголовую систему Linux Mint 17, она не создает обновления / создает файл.Xauthority.

Более того, когда я бегу xauth Я получаю ответ:

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>

Это не создает файл.

РЕДАКТИРОВАТЬ:

Когда я подключаю монитор, затем регистрируюсь локально, файл создается, но когда я пытаюсь добавить запись (потому что мой SSH не делает это для меня):

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".

Кстати, занимаешься netstat --listen показывает прослушивание порта:

tcp 0 0 localhost:6010 *:* LISTEN

AGH, больше информации. Я вышел из сеанса X на сервере, и теперь файл.Xauthority исчез. Кажется, файл только там при входе в систему локально. Может кто-нибудь сказать мне, почему, или как я могу это исправить?

НОВАЯ РАЗРАБОТКА:

Я создал девственного пользователя в системе под названием "тест". Затем я вошел в систему, и без каких-либо других команд, запустил xeyes. Который работал! Так что ТОЛЬКО пользователь "Марти" не может xforward. Как скопировать настройки из теста в марти?

10 ответов

Решение

Узнав, что это была не система, добавив тестового пользователя (который x перенаправлял "из коробки"), я подумал, что начну копировать файлы запуска.bash*, чтобы девизировать "испорченного" пользователя.

Ни один из файлов не отличался, поэтому я удалил каталог.ssh пользователей. Когда я входил в ssh, он стонал по поводу "Сервер отказался от нашего ключа", но я мог войти в систему, используя пароль. Зайдя в систему, я мог отлично переслать x.

Теперь я попытаюсь снова установить ключ и посмотреть, смогу ли я заставить его работать тоже. Тогда все вернется на круги своя.

Просто чтобы сообщить, у меня была похожая проблема. Но в моем случае я просто следую этим шагам:

Выполните следующие шаги, чтобы создать $HOME/.Xauthority файл.

Войдите в систему как пользователь и подтвердите, что вы находитесь в домашнем каталоге пользователя.

# 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 

После этого больше нет проблем с .Xautority файл с тех пор.

Спасибо и кредиты для Шринивасан.

Под root права открываются /etc/ssh/sshd_config и раскомментируйте следующие строки, если они закомментированы:

X11 переадресация да

X11DisplayOffset 10

X11UseLocalhost да

Затем выйдите и войдите снова с -X флаг в ssh, Вы не должны устанавливать или сбрасывать DISPLAY переменная окружения.

Просто чтобы дополнить ответ превосходной ton.

Однажды у меня была точно такая же проблема, потому что мой домашний каталог был заполнен на 100%. После подключения, ssh создал пустой ~/.Xauthority и не смог написать ни одной записи (так что xauth list всегда выдавал пустой вывод).

Поэтому я предлагаю всегда проверять свободное место (например: df -h) и проверяет, что xauth generate а также xauth add действительно имел какой-либо эффект (xauth list).

Обнаружил еще одну потенциальную причину того, что xauth не создает файл.Xauthority, выполнив пару ответов выше. Это должно стать очевидным, если вы следуете ответу Тона:

$ touch ~/.Xauthority
touch: cannot touch ‘/nethome/jdoe/.Xauthority’: Disk quota exceeded

Вышеуказанное произойдет, если вы превысите квоту "количество файлов" для вашего пользователя. Если вы превысите квоту пространства, вы, вероятно, увидите это сообщение об ошибке на другом этапе. Или, чтобы проверить, не связана ли проблема с квотой на дисковое пространство, введите:

echo "hello, world" > ~/hello.txt

Если echo дает вам Disk quota exceeded сообщение, то вы знаете, что используете слишком много места в своем домашнем каталоге (в отличие от слишком большого количества файлов или индексных дескрипторов).

Решение в любом случае? Очистите свой домашний каталог!

Вот еще один ответ, который я хотел бы найти (обработка случая пересылки с хоста виртуальной машины на гостевую виртуальную машину):

Могут быть определенные образы виртуальных машин (в моем случае образ KVM для Ubuntu 18.04), в которых по какой-то причине значение по умолчанию в /etc/ssh/sshd_config за AddressFamily установлен на any(Я наткнулся на это как на возможность здесь, на платформе Redhat Bugzilla, после того, как погуглил ошибку при запуске journalctl -xe, с подстрокой "Failed to allocate internet-domain X11 display socket.").

Конечно, предполагается, что xauth установлен / запущен.

Итак, что можно найти в других ответах здесь было не достаточно для меня, я нуждался в настройках:

AddressFamily inet
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no

В 10 должен зависеть от конфигурации вашего хост-компьютера, мне пришлось использовать X11UseLocalhost no, потому что в противном случае гость KVM будет пытаться перенаправить на свои собственные дисплеи, а не дисплеи хост-машины.

Если вы используете ssh-agent, то есть

AllowAgentForwarding yes

также, что, вероятно, следует активировать.

Перемещение .ssh каталог из пути заставил X переадресацию работать на меня.

В процессе удаления я нашел файл в ~/.ssh, который назывался "rc" и содержал:

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

Я никогда не создавал это, и понятия не имею, откуда это взялось. Удаление это решило проблему, и мой authorized_keys, known_hostsи ключевые файлы могут оставаться неизменными.

Я столкнулся с этой же проблемой на двух серверах, которые были технически родственными узлами. Боль в хвосте, потому что я не мог понять, что было по-другому. Оказывается, каталог / home был переполнен, поэтому файлы.Xauthority не могли заполняться должным образом. Когда я обнаружил, что файлы занимают слишком много места, и удалил их, новые файлы.Xauthority были созданы правильно.

Другая возможная причина:

на устройстве не осталось места (df показывает 0 байт)

Возможное исправление: например, удаление кеша Python-pip.

Я исправил эту проблему:

Я открыл ssh-соединение со своим сервером с помощью-Xтакой вариант команды

      ssh -X user@ip

затем я получил ошибку Xauthority. Итак, я просто запустил эту команду на ssh-сервере

      touch .Xauthority

Просто запусти это

После этого просто

      nano /etc/ssh/sshd_config

Раскомментируйте следующее и замените<username>с вашим именем пользователя

      Match User <Username>
    X11Forwarding yes
#    AllowTcpForwarding yes
#    PermitTTY yes
#    ForceCommand cvs server
Другие вопросы по тегам