Соединение X11 отклонено из-за неправильной аутентификации

Для метода, который будет работать независимо от версии (и реализации оболочки, такой как ksh93, откуда он исходит, и mksh и zsh, которые также его поддерживают ), вы можете сохранить шаблон и замену в переменной:

pattern="'"
replacement="''"
printf '%s\n' "${line//$pattern/$replacement}"

Или

q="'"
printf '%s\n' "${line//$q/$q$q}"

(обратите внимание, что в zsh$patternпринимается как фиксированная строка. Если вы хотите, чтобы он воспринимался как подстановочный шаблон (, который здесь не применяется, поскольку $patternне содержит подстановочных знаков ), вам необходимо заменить $patternна $~pattern. В других оболочках, если вы хотите, чтобы $patternвоспринималось как фиксированная строка, вам нужно заключить ее в кавычки (${line//"$pattern"/$replacement}).

1
21.10.2021, 12:06
1 ответ

Небезопасно опция:

На хосте, с которого вы входите, выполните

xhost +

или, только немного более безопасный

xhost <IP you want to log in to>

Это позволит подключаться с удаленного хоста.

Почему это небезопасно? Любая программа и пользователь с этого хоста (или любая программа/пользователь с любого хоста сxhost +)смогут получить доступ к вашему экрану и прочитать все нажатия клавиш на машине, на которой вы выполняете xhost.

Более безопасный вариант :

Добавьте ключ авторизации для вашего сервера X11 на удаленный компьютер:

На локальном компьютере перечислите необходимые «волшебные файлы cookie»:

# xauth list
hostname/unix:0  MIT-MAGIC-COOKIE-1  0123456789abcdef0123456789abcdef

На удаленной машине добавьте секрет в свой файл ~/.Xauthority. Проще всего снова использовать xauth:

.
# setenv DISPLAY <ORIGIN_IP>:0
# xauth add <ORIGIN_IP>:0 MIT-MAGIC-COOKIE-1 0123456789abcdef0123456789abcdef

Обратите внимание, что данные протокола X11 между этими машинами по-прежнему не зашифрованы и поэтому подвержены атакам.

1
22.10.2021, 10:07

Теги

Похожие вопросы