Estoy ejecutando un contenedor Ubuntu 16.04 en Proxmox 5.2-11. Después de aplicar la última ronda de parches 1, no puedo iniciar sesión en la consola o sobre ssh.
Monté el FS raíz de contenedores en el hipervisor y añadió pts/0
a /etc/security/access.conf
(corremos pam_access
) y la conexión de la raíz que permite a la consola. Tenemos root : lxc/tty0 lxc/tty1 lxc/tty2
en access.conf
lo que pensé que era suficiente, así que por qué lo necesitaba pts/0
ahora es desconcertante.
Noté que ssh no se estaba ejecutando, así que intenté iniciarlo a mano ( /usr/sbin/sshd -DDD -f /etc/ssh/sshd_config
) y recibí este error:
Missing privilege separation directory: /var/run/sshd
Creé el directorio a mano, comencé ssh
y finalmente pude iniciar sesión, pero después de reiniciar, el problema persiste. El directorio no se está creando. Solo bits útiles journalctl
y la única parte interesante es algo sobre "operación no permitida" pero no más información.
No estoy muy familiarizado con 16.04, así que me pregunto cómo puedo encontrar más información sobre el problema. No tengo /var/log/syslog
ni tan /var/log/messages
solo un kern.log
poco perdido.
systemd-sysv 229-4ubuntu21.9
libpam-systemd 229-4ubuntu21.9
libsystemd0 229-4ubuntu21.9
systemd 229-4ubuntu21.9
udev 229-4ubuntu21.9
libudev1 229-4ubuntu21.9
iproute2 4.3.0-1ubuntu3.16.04.4
libsasl2-modules-db 2.1.26.dfsg1-14ubuntu0.1
libsasl2-2 2.1.26.dfsg1-14ubuntu0.1
ldap-utils 2.4.42dfsg-2ubuntu3.4
libldap-2.4-2 2.4.42dfsg-2ubuntu3.4
libsasl2-modules 2.1.26.dfsg1-14ubuntu0.1
libgs9-common 9.25dfsg1-0ubuntu0.16.04.3
ghostscript 9.25dfsg1-0ubuntu0.16.04.3
libgs9 9.25dfsg1-0ubuntu0.16.04.3
[2]
Nov 27 10:13:48 host16 systemd[1]: Starting OpenBSD Secure Shell server...
Nov 27 10:13:48 host16 sshd[474]: Missing privilege separation directory: /var/run/sshd
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Control process exited, code=exited status=255
Nov 27 10:13:48 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Failed with result 'exit-code'.
Nov 27 10:13:48 host16 mysqld_safe[495]: Starting mysqld daemon with databases from /var/lib/mysql/mysql
Nov 27 10:13:48 host16 mysqld[500]: 181127 10:13:48 [Note] /usr/sbin/mysqld (mysqld 10.0.36-MariaDB-0ubuntu0.16.04.1) starting as process 499 ...
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Service hold-off time over, scheduling restart.
Nov 27 10:13:48 host16 systemd[1]: Stopped OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: Failed to reset devices.list on /system.slice/ssh.service: Operation not permitted
Nov 27 10:13:48 host16 systemd[1]: Starting OpenBSD Secure Shell server...
Nov 27 10:13:48 host16 sshd[502]: Missing privilege separation directory: /var/run/sshd
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Control process exited, code=exited status=255
Nov 27 10:13:48 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Failed with result 'exit-code'.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Service hold-off time over, scheduling restart.
Nov 27 10:13:48 host16 systemd[1]: Stopped OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: Failed to reset devices.list on /system.slice/ssh.service: Operation not permitted
Nov 27 10:13:48 host16 systemd[1]: Starting OpenBSD Secure Shell server...
Nov 27 10:13:48 host16 sshd[503]: Missing privilege separation directory: /var/run/sshd
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Control process exited, code=exited status=255
Nov 27 10:13:48 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Failed with result 'exit-code'.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Service hold-off time over, scheduling restart.
Nov 27 10:13:48 host16 systemd[1]: Stopped OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: Failed to reset devices.list on /system.slice/ssh.service: Operation not permitted
Nov 27 10:13:48 host16 systemd[1]: Starting OpenBSD Secure Shell server...
Nov 27 10:13:48 host16 sshd[504]: Missing privilege separation directory: /var/run/sshd
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Control process exited, code=exited status=255
Nov 27 10:13:48 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Failed with result 'exit-code'.
Nov 27 10:13:49 host16 systemd[1]: ssh.service: Service hold-off time over, scheduling restart.
Nov 27 10:13:49 host16 systemd[1]: Stopped OpenBSD Secure Shell server.
Nov 27 10:13:49 host16 systemd[1]: ssh.service: Start request repeated too quickly.
Nov 27 10:13:49 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:49 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:49 host16 systemd[1]: ssh.service: Failed with result 'start-limit-hit'.
Nov 27 10:13:49 host16 systemd[1]: Started /etc/rc.local Compatibility.
Nov 27 10:13:49 host16 systemd[1]: Failed to reset devices.list on /system.slice/plymouth-quit.service: Operation not permitted
Nov 27 10:13:49 host16 systemd[1]: Starting Terminate Plymouth Boot Screen...
Nov 27 10:13:49 host16 systemd[1]: Failed to reset devices.list on /system.slice/plymouth-quit-wait.service: Operation not permitted
Nov 27 10:13:49 host16 systemd[1]: Starting Hold until boot process finishes up...
Nov 27 10:13:49 host16 systemd[1]: Failed to reset devices.list on /system.slice/rc-local.service: Operation not permitted
Nov 27 10:13:49 host16 systemd[1]: Started Hold until boot process finishes up.
Nov 27 10:13:49 host16 systemd[1]: Started Container Getty on /dev/pts/1.
Nov 27 10:13:49 host16 systemd[1]: Started Container Getty on /dev/pts/0.
Nov 27 10:13:49 host16 systemd[1]: Failed to reset devices.list on /system.slice/console-getty.service: Operation not permitted
Nov 27 10:13:49 host16 systemd[1]: Started Console Getty.
Nov 27 10:13:49 host16 systemd[1]: Reached target Login Prompts.
Nov 27 10:13:49 host16 systemd[1]: Started Terminate Plymouth Boot Screen.
Nov 27 10:13:52 host16 nslcd[338]: accepting connections
Nov 27 10:13:52 host16 nslcd[275]: ...done.
Nov 27 10:13:52 host16 systemd[1]: Started LSB: LDAP connection daemon.
Nov 27 10:13:52 host16 systemd[1]: Failed to reset devices.list on /system.slice/cron.service: Operation not permitted
Nov 27 10:13:52 host16 systemd[1]: Started Regular background program processing daemon.
Nov 27 10:13:52 host16 systemd[1]: Failed to reset devices.list on /system.slice/atd.service: Operation not permitted
systemd-tmpfiles --create
Salida agregada
Realmente extraño ... Lo comprobé /tmp
y esos archivos no existen
journalctl
?/etc/init.d/ssh
, no se ejecutará ysystemctl
se utilizará en su lugar. Y cuandosshd
se inicia a travéssystemctl
del directorio no se crea. Eso deja algunas preguntas abiertas en las que intentaré profundizar mañana, como qué ha cambiado exactamente y cómo se supone que se creará ese directorio cuandosystemctl
se use.systemctl
,/etc/init/ssh.conf
es el responsable de crear el directorio. Probé en un Ubuntu 16.04 completamente actualizado y el directorio se creó durante el arranque. Pero por alguna razón no se crea cuando se usaservice ssh start
. Hay algunas actualizaciones recientes de algunossystemd
paquetes relacionados, pero no veo ninguna evidencia de comportamiento con respecto a la creación de ese directorio que ha cambiado. Y cuando lo pruebo, se crea durante el arranque. Entonces la pregunta es si/etc/init/ssh.conf
tiene el contenido correcto./etc/init/ssh.conf
que también existe el/usr/lib/tmpfiles.d/sshd.conf
que parece ser utilizado porsystemd-tmpfiles --create
. ¿systemd-tmpfiles --create
Crea el/var/run/sshd
directorio que falta ?systemd-tmpfiles --create
salida. Los "enlaces simbólicos" de los que se queja systemd (/tmp/.X11-unix) ni siquiera existen,/tmp/
así que no tengo idea de dónde está obteniendo eso. Gracias por toda su ayuda, pero creo que voy a seguir adelante.Entonces / run (y / var / run enlazado a él) se recrean cada reinicio. Excepto que systemd-tmpfiles no está haciendo eso para algunos archivos que incluyen (/ var) / run / sshd.
Aparentemente, esto se soluciona mediante una actualización del núcleo de OpenVZ. Pero para solucionarlo ahora, edita
/usr/lib/tmpfiles.d/sshd.conf
y elimina/var
de la línead /var/run/sshd 0755 root root
para leer en su lugar:d /run/sshd 0755 root root
Y eso es..!
Y cuando se actualice openssh-server, esperamos que hayan solucionado este error (¿o es realmente un error en systemd? O openvz ??); de lo contrario, podría encontrarse con el mismo problema.
fuente
d /run/sshd 0755 root root
, ya que sus instrucciones dicen que solo se elimine la/var
parte (a pesar de que el código que dan en la respuesta tiene ambos/var
y se/run
eliminó).Aparentemente, esto se resuelve cuando se ejecuta un kernel OpenVZ 2.6.32-042stab134.7 o posterior. Me resulta extraño que no haya una solución posible en los scripts de inicio del sistema de alguna manera. Probablemente un truco feo como crear automáticamente / ejecutar / sshd / después de iniciar y luego iniciar sshd funcionaría.
La salida de mi
systemd-tmpfiles --create
:El registro de cambios de OpenVZ 2.6.32-042stab134.7 dice esto:
fuente
Por todos los problemas que he tenido con systemd a lo largo de los años, debo admitir que este problema se deriva de la directiva de sincronización Ansible .
Por alguna razón, después de aprovisionar este host con nuestros scripts ansbile, dejó el directorio / (así como / etc, / opt y otros) propiedad de un usuario administrador, y no root. Después de correr
chown
para corregir las cosas,/var/run/sshd
ahora se crea en el arranque nuevamente.Realmente aprecio toda la entrada, pero no hay ningún error aquí, al menos en el sentido de que aplicar una propiedad inapropiada a los directorios raíz causó un comportamiento indefinido del sistema.
fuente