Я только что обновился до MacOS Sierra и понял, что больше не могу запускать команду «ssh -X» в Терминале. Раньше он запускал xterm windows, но теперь я даже не включил опцию -X. Он работал абсолютно нормально прямо перед обновлением. Кроме перехода с OS X Yosemite на MacOS Sierra, я ничего не изменил в настройке.
РЕДАКТИРОВАТЬ:
Как и предполагалось, это то, что я нашел в журналах отладки, которые могут быть причиной этой проблемы.
debug1: No xauth program.
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Мне не нужно было переустанавливать XQuartz, но, основываясь на ответе Мэтта Виджаи, я придумал уточнение.
sudo vi /etc/ssh/ssh_config
(Это конфигурация клиента ssh, а не sshd_config) Host *
добавьте (или добавьте, где это необходимо для каждого хоста) XAuthLocation /usr/X11/bin/xauth
(Местоположение xauth изменилось в Сьерре) li> ServerAliveInterval 60
(Пингует сервер каждые 60 секунд, чтобы поддерживать соединение ssh) li> ForwardX11Timeout 596h
( Разрешает ненадежные соединения X11 за пределами 20-минутного значения по умолчанию) li> ul> Нет необходимости перезапускать ssh, кроме, конечно, существующих клиентских соединений ssh.
Похоже, что -Y (доверенный X11) предпочтительнее, чем ненадежный. Если вы переключитесь на доверенный, строку ForwardX11Timeout, вероятно, можно удалить.
Строка ServerAliveInterval также является необязательным предпочтением.
Также возможно внести эти изменения в ~/.ssh/config
(файл конфигурации пользователя), но разрешения должны быть правильными.
РЕДАКТИРОВАТЬ: я удалил ForwardX11 и ForwardX11Trusted. Они не нужны, и ForwardX11 менее безопасен и вызывает проблемы для git (или других инструментов, использующих ssh).
Я заметил, что macOS Sierra сбросил мои настройки X11, чтобы отключить мою программу xAuth. Чтобы снова включить xAuth в macOS Sierra:
sudo <text editor of your choice> /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
XAuthLocation <path_to_your_xauth>
, где моя была в / opt / X11 / bin / Xauth. Вероятно, это был золотой шаг, который объяснил, почему переустановка работала. sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
У меня те же проблемы с пересылкой X11 с опцией -X
после обновления до Mac OS X Sierra.
Посмотрите на опцию ssh -Y
(доверенная переадресация X11). При использовании ssh -Y <host>
у меня все работает.
Просто добавление одной строки XAuthLocation /usr/X11/bin/xauth
к /etc/ssh/ssh_config
работает на моем Mac с MacOS Sierra, чтобы подключиться к ssh на хост Linux и иметь возможность удаленно запускать программы для X Windows и отображать их под XQuartz на моем Mac.
Это старый вопрос, но недавно я столкнулся с той же проблемой на моем Mac с 10.12.6. Переменная DISPLAY
не установлена в терминале и ssh -X
не работает. Это то, что я сделал, чтобы решить эту проблему:
Переустановите XQuartz с помощью Homebrew: brew cask install xquartz
(может потребоваться опция --forced
)
Добавьте модуль запуска XQuartz к системе по умолчанию (следуя решению, приведенному в этом сообщении Reddit :
launchctl load -w /Library/LaunchAgents/org.macosforge.xquartz.startx.plist
Перезагрузите систему.
После этого моя переменная DISPLAY
установлена правильно:
$ echo $DISPLAY
/private/tmp/com.apple.launchd.mfXFpzZ0gC/org.macosforge.xquartz:0
И пересылка X11 в ssh также работает.
Только что обновил мой макбук с Эль Капитана до Сьерры. Простая переустановка Xquartz справилась со мной, используя ssh -X [linux server]
Мое решение этого было следующее.
(1) Запустите xquartz
, прежде чем пытаться ssh -X
. В опциях xquartz я просто включил «Открыть при входе в систему», а затем он всегда работает в фоновом режиме.
(2) Перейдите в меню «Предпочтения» xquartz
и в окне «Безопасность» установите флажок «Разрешить подключения от клиентов».
После этого все работает нормально.
Если установлен Quartz, все, что нужно, это добавить строку «X11Trusted yes» в поле «Host *» в файле / etc / ssh / ssh_config.
Я потратил целый день на поиски решения, только чтобы понять, что последняя версия Sierra не поставляется с установленным XQuartz https://support.apple.com/en-gb/HT201341 . После установки ( https://www.xquartz.org/ ) все работает.