3 votos

ssh falla: imagen no encontrada [preauth]

Cuando intento hacer SSH a mi ordenador, ssh falla con este error:

Mothership:~ kuyan$ ssh kuyan@localhost
Connection closed by ::1

Esto también ocurre cuando intento conectarme por SSH a mi usuario desde otro ordenador. Este mensaje aparece en la consola cuando intento conectarme:

12/12/12 3:44:30.468 PM sshd[2576]: fatal: ssh_sandbox_child: sandbox_init: dlopen(/usr/lib/libsandbox.1.dylib, 261): image not found [preauth]

Información relevante:

  • Estoy usando una versión diferente de sshd que OS X proporciona, instalado a través de brew install openssh - pero este error se produce con ambas versiones.

  • /usr/lib/libsandbox.1.dylib existe:

    Mothership:~ kuyan$ ls /usr/lib/libsandbox*
    /usr/lib/libsandbox.1.dylib /usr/lib/libsandbox.dylib
  • Aquí está mi /etc/sshd_config . La línea relevante parece ser UsePrivilegeSeparation cuando se descomenta y se establece en yes en lugar de sandbox Todo funciona bien.

  • Aunque no estoy usando MacPorts, el error que obtengo es esencialmente el siguiente aquí .

  • versión de sshd: OpenSSH_6.1p1, OpenSSL 0.9.8r 8 Feb 2011

3voto

Dtruss muestra:

2892/0xdc8e:  stat64("/usr/lib/libsandbox.1.dylib\0", 0x7FFF500DA5F0, 0x7FFF500DB500)        = -1 Err#2

que es ENOENT (No such file or directory) y la razón es probablemente que el chroot ya ocurrió. Si eres tan tonto como para experimentar por

sudo mkdir -p /var/empty/usr/lib
sudo cp /usr/lib/libsandbox.1.dylib /var/empty/usr/lib

Moverá el fallo al siguiente shlib que no esté bajo /var/empty/

sshd[3256]: fatal: ssh_sandbox_child: sandbox_init: dlopen (/usr/lib/libsandbox.1.dylib, 261):
Library not loaded: /usr/lib/libsqlite3.dylib\\n  Referenced from: /usr/lib/libsandbox.1.dylib\\n  Reason: image not found [preauth]

Si persistes en esta locura

sudo cp /usr/lib/libsqlite3.dylib /usr/lib/libMatch.1.dylib /var/empty/usr/lib/

sshd empezará a funcionar de nuevo al menos para las claves SSH, las contraseñas siguen sin funcionar.

También puede editar /usr/local/etc/sshd_config cambiando

UsePrivilegeSeparation sandbox

en

UsePrivilegeSeparation yes

Pero fuera de los propósitos de depuración no sugiero intentar nada de esto.

1voto

Ibrahim Puntos 1

He solucionado este problema en el sshd de MacPorts portando un parche del sshd de Apple (que se puede encontrar en http://opensource.apple.com/source/OpenSSH/OpenSSH-186/ ). Apple movió la función que llama a sandbox_init(3) (que llama dlopen(3) internamente) antes del chroot(2) que haría fallar la carga de la biblioteca.

Los parches necesarios son

y openssh necesita ser construido con -D__APPLE_SANDBOX_NAMED_EXTERNAL__ en las banderas del preprocesador.

El fallo en la autenticación con contraseñas se debe a que OS X no soporta las funciones de librería necesarias para hacerlo sin usar PAM. Configuración de UsePAM yes en su sshd_config debería funcionar (al igual que aplicar http://trac.macports.org/browser/trunk/dports/net/openssh/files/pam.patch que cambia el valor por defecto a habilitar PAM).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X