Estoy trabajando en un servidor con Debian 5.2.2. Apenas teniendo algún conocimiento administrativo con Linux, creo que arruiné algo. Utilicé apt-get update y apt-get upgrade para actualizar todo y luego descargué e instalé Apache, PHP y MySQL. Esas herramientas parecen funcionar bien, pero ahora ni siquiera puedo iniciar sesión en el servidor EXCEPTO a través de la consola local. Si intento iniciar sesión a través de la GUI o si intento iniciar sesión de forma remota a través de ssh, scp o cualquier otra cosa, me desconecto INMEDIATAMENTE al iniciar sesión correctamente. En otras palabras, no tiene ningún problema con la conexión inicial, pero cuando pongo el nombre de usuario y la contraseña correctos (para root o cualquier usuario), me desconecto. Con la GUI, la pantalla se oscurece por un segundo y luego me devuelve a la solicitud de inicio de sesión. Con ssh, obtengo "conexión al [servidor] cerrada".
Se agradece cualquier ayuda, y si hay alguna forma en que pueda dar más información, hágamelo saber. Gracias por tu tiempo.
Ediciones:
- Cualquier usuario puede iniciar sesión en la consola local
- Por el momento no tengo acceso local a la máquina, así que todo lo que puedo hacer ahora es ssh. Aquí está la salida de ssh -vvv [servidor] después de ingresar mi contraseña:
Linux xxxxxxx.com 2.6.26.8+20091222+1056-debhawk-5.2.2-custom #1 SMP PREEMPT Tue Dec 22 10:58:57 EST 2009 i686
Last login: Mon Apr 30 14:48:07 2012 from xxxxxxx.com
debug2: channel 0: rcvd eof
debug2: channel 0: output open -> drain
debug2: channel 0: obuf empty
debug2: channel 0: close_write
debug2: channel 0: output drain -> closed
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug2: channel 0: rcvd close
debug2: channel 0: close_read
debug2: channel 0: input open -> closed
debug3: channel 0: will not send data after close
debug2: channel 0: almost dead
debug2: channel 0: gc: notify user
debug2: channel 0: gc: user detached
debug2: channel 0: send close
debug2: channel 0: is dead
debug2: channel 0: garbage collecting
debug1: channel 0: free: client-session, nchannels 1
debug3: channel 0: status: The following connections are open:
#0 client-session (t4 r0 i3/0 o3/0 fd -1/-1)
debug3: channel 0: close_fds r -1 w -1 e 6
Connection to xxx.x.xx.xx closed.
debug1: Transferred: stdin 0, stdout 0, stderr 35 bytes in 0.0 seconds
debug1: Bytes per second: stdin 0.0, stdout 0.0, stderr 3845.3
debug1: Exit status 254
/var/log/messages
y/car/log/secure
cuando intente iniciar sesión de forma remota. Intente iniciar sesiónssh -vvv <servername>
para poder ver qué está sucediendo mal.dmesg
La salida también puede ser útil, pero deberá recortar y publicar solo las partes relevantes. ¿Puede iniciar sesión con cualquier cuenta de usuario en la consola local o solo root? ¿Se está ejecutando el demonio SSH (ps auxwww|grep ssh
)?Respuestas:
Hay un par de publicaciones similares que sugieren que esto podría ser un problema para generar un shell debido a una configuración incorrecta de la ruta del shell en
/etc/passwd
Para verificar esto, determine que su ruta de shell de usuario existe y es ejecutable;
Comprobar shell existe:
También, comprobar que el depósito no está ajustado a
/sbin/nologin
o/bin/false
, lo que también bloquear el inicio de sesión, incluso con una autenticación exitosa.http://www.linuxforums.org/forum/ubuntu-linux/173779-solved-ssh-issue.html
http://www.unix.com/hp-ux/169496-solved-ssh-debug1-exit-status -254-problem.html
http://www.mail-archive.com/[email protected]/msg04460.html
fuente
Cuando me encontré con este problema, todavía tenía una conexión abierta / var / log / messages revelada:
La edición de vi /etc/init.d/named permitió cambiar la forma en que se montó / proc, por lo que el error no se produjo después de un reinicio.
Básicamente las lineas
Se cambiaron a
Un consejo que encontré en http://www.computersalat.de/linux/strato-vserver/ssh-login-problem-nach-neustart/#comment-905
fuente
Mi problema fue que el directorio de nombre de usuario de inicio de sesión no estaba disponible en el
/home
directorio. Entonces, si tiene un usuario llamado 'testuser', asegúrese de que el/home/testuser
directorio esté disponible. Aprendí eso del/var/log/messages
archivo.fuente
/var/log/messages/auth.log
punteros. También tuve un problema con el archivoEn el
sshd_config
archivo de su servidor SSH , agregue la siguiente línea:A continuación se muestra el
sshd_config
que uso en OS X. Lo publico (en lugar de uno en una máquina Debian) porque experimenté el mismo problema en OS X usando Macports (y no Debian).fuente
Si está utilizando LDAP, reemplace cada aparición de:
en todos los archivos en /etc/pam.d/ con:
Este es un error en el paquete libpam-ldap (archivos pam.d de ejemplo), consulte: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=612825
Asegúrese de que el sistema pueda resolverse correctamente, ssh es un poco particular al respecto.
Verifique /etc/secuiry/limits.conf para ver si alguna cuenta tiene límites estrictos en la cantidad de inicios de sesión y aumente esos, es decir:
Además de / var / log / messages como lo menciona Bram, también verifique /var/log/auth.log y pegue cualquier salida relevante. Demasiada información es mejor que muy poca.
fuente
De hecho, he encontrado exactamente estos síntomas de la manera sugerida por @ tom-h anteriormente ... y la resolución fue muy sencilla.
Para resolver, simplemente
vipw
y edite el archivo passwd, ajuste el shell de / bin / false a / bin / bash o la opción que prefiera.Tenga en cuenta que, en algunos casos, esto podría hacerse para proteger una cuenta confidencial. Puede haber otras restricciones de acceso vigentes. Debe conocer la importancia de proteger el servidor y tener en cuenta las implicaciones de permitir este tipo de acceso.
fuente
Tuve problemas similares con Ubuntu 16.04 con LDAP. "ssh -vv ..." mostró que la autenticación de contraseña fue exitosa, pero luego apareció el mensaje: "Conexión a ... cerrada por host remoto".
Solucionado en /etc/ldap.conf en la configuración de "bind_policy".
/var/log/auth.log mostró:
Encontró que el problema estaba en /etc/ldap.conf. Cambié bind_policy a "soft", por lo que nss_ldap regresa inmediatamente en caso de falla del servidor. El valor predeterminado es "hard_open", que se vuelve a conectar si falla la apertura de la conexión al servidor LDAP. Al comentar la línea "bind_policy soft", la cambió a la predeterminada y resolvió el problema. :-)
fuente
Después de mucha búsqueda, finalmente encontré una respuesta en el caso de CentOS 7 ejecutándose en un contenedor sin privilegios.
Comente la
session required pam_loginuid.so
línea en el archivo /etc/pam.d/sshd y luego reinicie el contenedor.Encontré esta solución en https://discuss.linuxcontainers.org/t/regular-user-is-unable-to-login-via-ssh/4119
fuente
Todas estas son excelentes sugerencias. En mi caso, fue una configuración PuTTY lo que causó mi dolor:
Había puesto un comando remoto para enviar al servidor en la configuración "SSH". Lo que funciona muy bien el 99% del tiempo, sin embargo, cuando el comando falla, simplemente cierra la sesión.
¿¿¿El comando??? pantalla -rd
Funciona muy bien cuando realmente hay una sesión para reanudar. Falla horriblemente después de un reinicio.
La solución:
mueve eso a bashrc / bash_profile.
fuente
En mi caso, fue causado por un usuario sin shell en un servidor SSH . Tiene una solución muy fácil, solo use el
-N
interruptor con su cliente (abierto) SSH.Desde la página del manual :
Simplemente no puedo estar de acuerdo con algunas de las respuestas aquí. Un usuario con la cáscara
/bin/false
,/bin/nologin
es una configuración adecuada, se utiliza generalmente para los usuarios utilizan sólo para túneles SSH, sin la posibilidad de entrada y ejecutar los comandos en un servidor de SSH. Así que no intentes "arreglarlo" en el servidor, solo usa el-N
interruptor con tu cliente SSH.fuente
Asegúrese de que
/etc/passwd
tenga el shell correcto para el usuario.Por ejemplo, el usuario
ahmad
no pudo iniciar sesión en el servidor debido a la falta de shell:Dado que el shell establecido en
/bin/false
él significa que el usuarioahmad
no tiene un shell, y para solucionar esto, debe cambiar/bin/false
a/bin/bash
bash o cualquier otro shell.Si está utilizando un panel de control de alojamiento web, por ejemplo, Plesk, asegúrese de que el usuario tenga la capacidad de acceder al servidor.
fuente
Puede ser un problema de LDAP. La configuración automática para configurar LDAP, Kerberos y SMB se ejecutó sin,
--enablemkhomedir
fuente