Не удается запустить & ldquo; ssh -X & rdquo; на MacOS Сьерра

Вы можете использовать модуль inspect, чтобы получить полный исходный код для этого. Вы должны использовать метод getsource() для этого из модуля inspect. Например:

import inspect

def get_my_code():
    x = "abcd"
    return x

print(inspect.getsource(get_my_code))

Вы можете проверить дополнительные параметры в приведенной ниже ссылке. получить ваш код python

29
задан Dodie 21 September 2016 в 18:02
поделиться

10 ответов

Мне не нужно было переустанавливать XQuartz, но, основываясь на ответе Мэтта Виджаи, я придумал уточнение.

  • sudo vi /etc/ssh/ssh_config (Это конфигурация клиента ssh, а не sshd_config)
    • Под записью Host * добавьте (или добавьте, где это необходимо для каждого хоста)
      • XAuthLocation /usr/X11/bin/xauth (Местоположение xauth изменилось в Сьерре)
      • ServerAliveInterval 60 (Пингует сервер каждые 60 секунд, чтобы поддерживать соединение ssh)
      • ForwardX11Timeout 596h ( Разрешает ненадежные соединения X11 за пределами 20-минутного значения по умолчанию)

    Нет необходимости перезапускать ssh, кроме, конечно, существующих клиентских соединений ssh.

    Похоже, что -Y (доверенный X11) предпочтительнее, чем ненадежный. Если вы переключитесь на доверенный, строку ForwardX11Timeout, вероятно, можно удалить.

    Строка ServerAliveInterval также является необязательным предпочтением.

    Также возможно внести эти изменения в ~/.ssh/config (файл конфигурации пользователя), но разрешения должны быть правильными.

    РЕДАКТИРОВАТЬ: я удалил ForwardX11 и ForwardX11Trusted. Они не нужны, и ForwardX11 менее безопасен и вызывает проблемы для git (или других инструментов, использующих ssh).

47
ответ дан Christian 21 September 2016 в 18:02
поделиться

Я заметил, что macOS Sierra сбросил мои настройки X11, чтобы отключить мою программу xAuth. Чтобы снова включить xAuth в macOS Sierra:

  1. Переустановите X11 / xQuartz, чтобы предположительно сбросить любые изменения, сделанные macOS Sierra. Ниже я также внес следующие изменения, хотя, похоже, этого может быть достаточно.
  2. Загрузите терминал
  3. sudo <text editor of your choice> /etc/ssh/sshd_config
  4. В этом файле раскомментируйте следующие строки и установите для них следующие значения:
    • X11Forwarding yes
    • X11DisplayOffset 10
    • [Обновление от 10/07/2017] При переустановке X11 / XQuartz, прежде всего, следует добавить: XAuthLocation <path_to_your_xauth>, где моя была в / opt / X11 / bin / Xauth. Вероятно, это был золотой шаг, который объяснил, почему переустановка работала.
  5. Перезапустите ssh через терминал. Я сделал это, запустив:
    • sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
    • sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
25
ответ дан Matt Widjaja 21 September 2016 в 18:02
поделиться

У меня те же проблемы с пересылкой X11 с опцией -X после обновления до Mac OS X Sierra.

Посмотрите на опцию ssh -Y (доверенная переадресация X11). При использовании ssh -Y <host> у меня все работает.

10
ответ дан ebner 21 September 2016 в 18:02
поделиться

Просто добавление одной строки XAuthLocation /usr/X11/bin/xauth к /etc/ssh/ssh_config работает на моем Mac с MacOS Sierra, чтобы подключиться к ssh на хост Linux и иметь возможность удаленно запускать программы для X Windows и отображать их под XQuartz на моем Mac.

5
ответ дан Peter Edwards 21 September 2016 в 18:02
поделиться

Только что обновил мой макбук с Эль Капитана до Сьерры. Простая переустановка Xquartz справилась со мной, используя ssh -X [linux server]

2
ответ дан peter 21 September 2016 в 18:02
поделиться

перезапуск XQuartz работал на меня.

0
ответ дан mike 21 September 2016 в 18:02
поделиться

Я потратил целый день на поиски решения, только чтобы понять, что последняя версия Sierra не поставляется с установленным XQuartz https://support.apple.com/en-gb/HT201341 . После установки ( https://www.xquartz.org/ ) все работает.

1
ответ дан user8552682 21 September 2016 в 18:02
поделиться

Если установлен Quartz, все, что нужно, это добавить строку «X11Trusted yes» в поле «Host *» в файле / etc / ssh / ssh_config.

1
ответ дан Jim Ramsey 21 September 2016 в 18:02
поделиться

Это старый вопрос, но недавно я столкнулся с той же проблемой на моем Mac с 10.12.6. Переменная DISPLAY не установлена ​​в терминале и ssh -X не работает. Это то, что я сделал, чтобы решить эту проблему:

  1. Переустановите XQuartz с помощью Homebrew: brew cask install xquartz (может потребоваться опция --forced)

  2. Добавьте модуль запуска XQuartz к системе по умолчанию (следуя решению, приведенному в этом сообщении Reddit : launchctl load -w /Library/LaunchAgents/org.macosforge.xquartz.startx.plist

  3. Перезагрузите систему.

После этого моя переменная DISPLAY установлена ​​правильно:

$ echo $DISPLAY /private/tmp/com.apple.launchd.mfXFpzZ0gC/org.macosforge.xquartz:0

И пересылка X11 в ssh также работает.

4
ответ дан user2032994 21 September 2016 в 18:02
поделиться

Мое решение этого было следующее.

(1) Запустите xquartz, прежде чем пытаться ssh -X. В опциях xquartz я просто включил «Открыть при входе в систему», а затем он всегда работает в фоновом режиме.

(2) Перейдите в меню «Предпочтения» xquartz и в окне «Безопасность» установите флажок «Разрешить подключения от клиентов».

После этого все работает нормально.

5
ответ дан zabumba 21 September 2016 в 18:02
поделиться
Другие вопросы по тегам:

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