Зачем мне нужен XDMCP для запуска удаленного сеанса X через SSH?

В нормально настроенной системе при изменении оболочки с помощью chsh выбранная оболочка является действительной, поэтому оболочка запускается, но возникает проблема с одним из файлов конфигурации, которая вызывает ее немедленный выход.

После регистрации нажмите Ctrl + C очень быстро. В зависимости от того, насколько загружена машина, временное окно, в течение которого это не убьет оболочку, но даст команду прекратить синтаксический анализ файлов конфигурации, может длиться достаточно долго, чтобы получить реальный шанс на успех. Попробуйте это несколько раз, в идеале во время большой активности диска, чтобы вовлеченные файлы не попали в кэш диска.

Если проблема находится в файле .zshrc , вы по-прежнему можете регистрация в неинтерактивном режиме. Это невозможно на консоли, но может быть сделано по сети:

ssh machinename 'mv .zshrc bad.zshrc'

Если у вас есть FTP (не SFTP) доступ, вы можете избавиться от любого файла конфигурации таким образом, потому что FTP не читает никаких файлов конфигурации. При использовании SSH или SFTP всегда вызывается оболочка, поэтому вы не сможете войти в систему, если проблема связана с .zprofile или .zshenv .

Если вы не можете получить доступ к своей учетной записи, это необходимо исправить с помощью корневой учетной записи. Если у вас есть пароль root, просто войдите как root на консоли. Если у вас есть доступ только к корневой учетной записи через sudo, вы заблокировали себя, так что если никто не сможет сделать это за вас, вам потребуется физический доступ к машине, и вам потребуется перезагрузить ее. В приглашении загрузчика (для его отображения нажмите и удерживайте клавишу Shift ) добавьте init =/bin/sh в конце командной строки ядра (строка, начинающаяся с linux ). Для получения дополнительной информации см. Арочный вики .

Как только вы получите доступ с корневой учетной записи, вы можете либо изменить оболочку обратно на работавшую, либо угадать файл, вызвавший проблему. Zsh считывает пять файлов конфигурации в /etc и 5 в домашнем каталоге .

После восстановления доступа к учетной записи, если вы не знаете, какой файл вызвал проблему, добавьте set -x to ~/.zshenv . Это приведет к печати zsh всех команд перед их выполнением. Выполните команду zsh -l , чтобы запустить оболочку входа, или войдите в систему на другом терминале и проверьте, какие разрывы.

Прежде чем изменить оболочку на zsh, проверьте, работает ли zsh -l . После выполнения chsh проверьте, что перед выходом из системы можно войти в систему на другом терминале.

-121--128536-

Вероятно, имеется файл конфигурации, в котором записано yesm , но ожидается yes или no . Найдите файл, содержащий yesm в разделе /etc :

sudo find /etc -type f -exec grep yesm {} +

Видимо, сообщение lp _ bool поступает от Samba, поэтому ошибка, вероятно, находится в файле конфигурации, связанном с Samba.

1
03.03.2018, 16:29
2 ответа
startx gnome-session -- :1 tty8

Si ejecuta este comando en una sesión ssh -X, no logrará una gnome-sessionremota por sí mismo. En cambio, está tratando de iniciar de forma remota -una sesión de GNOME en la consola virtual tty8del host remoto, para quienquiera que se siente en esa computadora.

En cambio, primero querrá configurar las claves SSH para que pueda ejecutar comandos en su host remoto en su propia cuenta sin solicitar una contraseña o frase de contraseña de la clave SSH. Entonces ejecutaría algo como esto en su sistema local :

startx ssh -X <remote host> gnome-session -- :1 tty8

Es posible que deba agregar &al final para que el comando se ejecute en segundo plano.

Básicamente, querrás:

1 )un servidor X en su tty8, ejecutándose como su proceso de sesión...

2 )... la conexión SSH de reenvío X -al host remoto, donde...

3 )...el gnome-sessionse inicia y pasará sus pantallas a través de la conexión SSH al servidor X "vacío" en su tty8 local.

Tenga en cuenta que si GNOME usa funciones avanzadas de aceleración 3D de la GPU para renderizar su escritorio, usará renderizado directo (= acceso directo a la memoria entre el administrador de ventanas de GNOME y el servidor X )cuando se ejecuta localmente.Cuando se ejecuta una sesión remota como esta, la representación directa no será posible (ya que la GPU no está en la misma computadora que el proceso del administrador de ventanas. ), lo que puede ralentizar las cosas. En ese caso, es posible que deba elegir un administrador de ventanas más simple.

XDMCP es un protocolo para controlar terminales X11:desmontados -aparatos informáticos cuyo único trabajo es actuar como una pantalla + ratón + teclado X11 para alguna otra computadora. El protocolo XDMCP se desarrolló mucho antes que SSH y es completamente inseguro. No se aplica a su caso, a menos que configure específicamente el administrador de visualización (, gdm, kdm, xdmo cualquier otro*dm)para que sea consciente de XDMCP -, ya que XDMCP está deshabilitado de manera predeterminada. en los sistemas modernos porque no es seguro. Si hiciera eso, entonces podría decirle a startxque haga que su servidor X local finja que es un terminal X11, y que haga una conexión directa, sin encriptar, no -SSH -reenviada al host remoto. (Sólo di "no".)

X nesting, por otro lado, le permitiría, p. tenga una sola ventana grande en su sesión X11 local regular en :0.0 (o tty7), que luego contendría la sesión de escritorio remoto.

4
27.01.2020, 23:18

Uso Xnest para estohttps://www.x.org/archive/X11R7.5/doc/man/man1/Xnest.1.html

Después de instalarlo (está en apto para Debian/ubuntu/mint/etc )abre una terminal y haz

user@localhost:~$ Xnest :1 &
user@localhost:~$ export DISPLAY=:1
user@localhost:~$ ssh -Y user@remotehost
(login, etc)
user@remotehost:~$ mate-session

Alternativamente, puede abrir un VT (ctrl+alt+F1, etc. )e iniciar un nuevo servidor X simplemente usando X :1y luego haciendo lo mismo export DISPLAY=:1e ingresando. Personalmente prefiero Xnest.

2
27.01.2020, 23:18

Теги

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