Как удаленно удалять ssh с исполняемого X-экземпляра?

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

Там, где это становится проблематичным, люди начинают добавлять сторонние приложения. Усовершенствование делает все возможное, чтобы справиться, отключив PPA при обновлениях и т. Д., Но вы должны быть добрым!

2
задан 12 October 2011 в 01:34

4 ответа

Программе X требуется две части информации для подключения к X-дисплею.

Ему нужен адрес дисплея, который обычно :0, когда вы вошли в систему локально или [ f4], :11 и т. д., когда вы вошли в систему удаленно (но число может меняться в зависимости от количества подключений X). Адрес дисплея обычно указывается в переменной среды DISPLAY. Ему нужен пароль для отображения. X-пароли имен называются волшебными куки-файлами. Магические файлы cookie не указываются напрямую: они всегда хранятся в файлах полномочий X, которые представляют собой коллекцию записей формы «display :42 имеет cookie 123456». Файл полномочий X обычно указывается в переменной среды XAUTHORITY. Если $XAUTHORITY не установлен, программы используют ~/.Xauthority.

Вы пытаетесь воздействовать на окна, которые отображаются на вашем рабочем столе. Если вы единственный человек, использующий ваш настольный компьютер, очень вероятно, что отображаемое имя будет :0. Поиск местоположения файла полномочий X сложнее, потому что с gdm, настроенным под сжатием Debian или Ubuntu 10.04, он находится в файле со случайно сгенерированным именем. (У вас не было проблем, потому что более ранние версии gdm использовали настройку по умолчанию, то есть файлы cookie, хранящиеся в ~/.Xauthority.)

Если это одноразовый, вы можете обнаружить значения DISPLAY и XAUTHORITY из текущего процесса. Это неудобно автоматизировать. Вы должны определить PID процесса, который подключен к дисплею, над которым вы хотите работать, затем получить переменные среды из /proc/$pid/environ (eval export $(</proc/$pid/environ tr \\0 \\n | grep -E '^(DISPLAY|XAUTHORITY)=')).

Долгосрочное автоматическое решение является копирование файлов cookie при входе в сеанс X вашего рабочего стола. Добавьте следующие строки в ~/.profile (или какой-либо другой скрипт, который читается при входе в систему):

case $DISPLAY:$XAUTHORITY in
  :*:?*)
    # DISPLAY is set and points to a local display, and XAUTHORITY is
    # set, so merge the contents of `$XAUTHORITY` into ~/.Xauthority.
    XAUTHORITY=~/.Xauthority xauth merge "$XAUTHORITY";;
esac

Затем вы можете запускать программы на вашем удаленном X-дисплее просто установкой DISPLAY: [ ! d10]

ssh foo.example.com 'DISPLAY=:0 restart teamviewer'

Этот ответ адаптирован из более полного ответа на аналогичный вопрос об Unix Stack Exchange.

1
ответ дан 25 May 2018 в 18:20

Вероятно, самый простой способ - дистанционно (через SSH) запустить vncserver на соответствующем дисплее. После этого используйте SSH-туннелирование для подключения клиента vnc с удаленного компьютера через соединение SSH с сервером VNC.

0
ответ дан 25 May 2018 в 18:20
  • 1
    Я действительно пытался это сделать, но VNC не так надежен, как TeamViewer, а также намного медленнее. По какой-то причине, каждый раз, когда я начал использовать VNC для реальной работы, это закончилось сбоем, и я потерял всю свою работу. – Can Bal 12 October 2011 в 04:36
  • 2
    Ну, должно быть достаточно перезапустить TeamViewer? – Sascha Vogt 12 October 2011 в 13:03
  • 3
    Я тоже это пробовал. По какой-то причине запуск TeamViewer в VNC сразу же отключает VNC. У меня недостаточно знаний в VNC, поэтому я подумал, что это будет сложнее. – Can Bal 17 October 2011 в 01:18

Вероятно, самый простой способ - дистанционно (через SSH) запустить vncserver на соответствующем дисплее. После этого используйте SSH-туннелирование для подключения клиента vnc с удаленного компьютера через соединение SSH с сервером VNC.

0
ответ дан 6 August 2018 в 03:05

Вероятно, самый простой способ - дистанционно (через SSH) запустить vncserver на соответствующем дисплее. После этого используйте SSH-туннелирование для подключения клиента vnc с удаленного компьютера через соединение SSH с сервером VNC.

0
ответ дан 10 August 2018 в 09:08

Другие вопросы по тегам:

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