вручную перенаправлять X-выход через ssh

У меня есть удаленный сервер, на котором я могу войти в систему с помощью ssh. Однако для моего пользователя нет домашнего каталога.

Когда я пытаюсь ssh -X на этот сервер, ssh пытается поместить файл cookie в ~/.Xauthority который явно не работает, и поэтому выход X невозможен.

Насколько я вижу, нет способа указать другой файл для сохранения файла cookie.

Поэтому я попытался настроить вещи вручную на временном доме:

 mkdir -p /tmp/myhome cd /tmp/myhome export HOME=$PWD xauth add $DISPLAY . $COOKIE xlogo # test setup 

Теоретически ssh должен настроить туннель и правильно установить $ DISPLAY, и единственное, что отсутствует, – это правильное значение для $ COOKIE.

Значение, показанное в xauth list (что-то вроде ffb3c8b945442b70146f7158861f1a54 ) на другом сервере, кажется ffb3c8b945442b70146f7158861f1a54 на этом.

Вопрос:

  • Почему cookie, работающий на одном сервере, не работает на другом?
  • Как получить рабочий файл cookie в моем случае?
  • Есть ли более простой способ настроить xforwarding в этом случае? (помимо получения правильного домашнего каталога или использования незашифрованного соединения xhost )

One Solution collect form web for “вручную перенаправлять X-выход через ssh”

OpenSSH предоставляет альтернативный способ установки файла cookie X на стороне протокола: sshrc файл . Этот файл может быть ~/.ssh/rc или /etc/ssh/sshrc (или /etc/sshrc или другое местоположение в зависимости от конфигурации сервера). В руководстве приведен фрагмент кода для использования в этом файле, чтобы вручную установить cookie. Если ваш сервер /bin/sh является антивирусом POSIX, вы можете упростить этот код до

 if read proto cookie && [ -n "$DISPLAY" ]; then echo "add unix:${DISPLAY#localhost:} $proto $cookie" | xauth -q - fi 

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

Ваш код похож, но сохраняет localhost: в начале экрана, который не будет работать, если сервер не прослушивает TCP-соединения. Отображение формы localhost:10 не эквивалентно :10 , хотя они имеют схожие эффекты, если обе работают: форма с именем хоста проходит через TCP-соединение, тогда как форма без имени хоста использует сокет Unix, который может быть все, что доступно (и которое позволяет оптимизировать, даже если TCP доступен, но я сомневаюсь, что эти оптимизации делают что-либо, когда соединение затем передается через TCP по SSH).

Причина предпосылки echo add … | xauth - echo add … | xauth - а не xauth add … заключается в том, что другой пользователь, отслеживающий процессы, созданные вами, может поймать командную строку xauth . Поскольку echo является встроенной оболочкой, они не смогут восстановить cookie с формой echo add …

  • Сетевое пространство имен, ssh, X11
  • «Показать localhost: 0 недоступен» и «xhost: невозможно открыть отображение« localhost: 0 »в локальном терминале (не SSH) на Fedora 25
  • Как переадресовать окно (отображение) на другой компьютер в сети
  • Где Xkb получает свою конфигурацию?
  • X после обновления до Fedora 23
  • Запуск emacsclient со сценарием
  • XServer: активные сеансы xserver в фоновом режиме
  • Arch: Awesome Window Manager не запускается
  • прокрутка сенсорной панели при переключении между физическим и виртуальным tty
  • Обновите / обновите Debian и пропустите любые взаимодействия
  • эмулировать сочетание клавиш с xdotool
  • Interesting Posts

    Изменение формата времени в файле

    Заменить символы подчеркивания пробелами для всех файлов в каталоге

    Почему команда history ничего не делает в файле сценария?

    выполнить команду над соединением ssh

    sudo ls не показывает скрытые файлы в Linux

    Почему значение переменной не изменяется внутри backticks?

    Корень не может изменять разрешение или право собственности на файл

    Отображение переменной даты

    Как получить доступ через терминал к разделу ntfs?

    Использует ли ksh88 число как десятичное с использованием синтаксиса 10 # n?

    pdf-файлы: результаты «pdfid»

    Транзакционная оболочка UNIX для изменения файловой системы

    Как найти пустые каталоги в unix

    Комбинаторика букв и слов – предпочтительно bash, будет принимать perl или другие

    Msgstr "предупреждение: Файловая система` ext2 'не поддерживает встраивание. "Но моя система тоже не встроена, почему попытка grub?

    Linux и Unix - лучшая ОС в мире.