Нет программы xauth; не может пересылать X11

-eq

True if the integers n1 and n2 are algebraically equal; otherwise, false.

испытание

=

True if the strings s1 and s2 are identical; otherwise, false.

испытание

Итак, -eqсравнивает целые числа, а =сравнивает строки (, которые также будут работать с некоторыми ограниченными целочисленными случаями ).


У вас есть проблема с синтаксисом, она должна быть:

[ "$rc" = 0 ]

И не

[ $rc=0 ]

[ "$rc" = 0 ]должен выйти с 1, потому что rcне равно 0

[ $rc=0 ]на самом деле должен завершиться с 0, потому что он, скорее всего, будет рассматриваться как строка, а наличие строки в тестовой конструкции [будет оцениваться как истина


С тестом sh [есть несколько отличий:

# leading 0
$ [ 01 -eq 1 ]; echo $?
0
# adjacent whitespace
$ [ ' 1' -eq 1 ]; echo $?
0
# negative 0 vs positive 0
$ [ 0 -eq -0 ]; echo $?
0

Однако с тестом bash [[есть большое количество отличий (В том числе упомянутые выше):

# base 8
$ [[ 032 -eq 26 ]]; echo $?
0
# Arithmetic expressions
$ [[ 1*6+32/15*2-1 -eq 9 ]]; echo $?
0
# Base 64
$ [[ 64#Hello_world -eq -5506400892957379251 ]]; echo $?
0

1
17.11.2019, 05:37
3 ответа

И ваш клиент, и сервер жалуются, что не могут найти программу xauth. Сообщение «debug1 :No xauth program» приходит от вашего клиента, в котором говорится, что он не может найти копию xauthлокально. Сообщение «Remote :Нет программы xauth; невозможно переслать X11» исходит от сервера, в котором говорится, что он также не может найти xauth. Расположение по умолчанию для клиента и сервера — /usr/X11R6/bin/xauth, хотя ваш поставщик может изменить его.

Для клиента вы можете установить местоположение Xauth в вашем .ssh/config:

XAuthLocation /some/path/to/xauth

Для сервера необходимо указать местоположение в конфигурации sshd _удаленного сервера:

XAuthLocation /opt/X11/bin/xauth

После изменения конфигурации вы должны запустить sshd -tдля проверки конфигурации, а затем перезапустить sshd, чтобы он перечитал файл.

12
27.01.2020, 23:29

Добавьте /opt/X11/bin в ваш PATH в ~/.bashrc, например.

case $PATH in
    (*"/opt/X11/bin"*) ;;
    (*) PATH=$PATH:/opt/X11/bin ;;
esac

в самом начале файла.

(Строго нужно искать "/opt/X11/bin :" *| *" :/opt/X11/bin :" *| *" :/opt/X11/bin"|"/opt/X11/bin" но *"/opt/X11/bin" *почти наверняка достаточно хорош)

1
27.01.2020, 23:29

Мне пришлось установить xauth с помощью dnf:

dnf install xauth

После этого все заработало как положено. Для более старых систем Redhat используйте «yum» вместо «dnf» в приведенной выше команде.

2
10.07.2020, 13:50

Теги

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