Error de PUTTY: / bin / bash Operación no permitida cuando se conecta a Cygwin sshd


0

Cuando intento conectarme a un servidor SSH usando PuTTY, aparece un error:

/bin/bash: Operation not permitted

Y luego recibo un cuadro de mensaje que dice:

Connection closed by remote host

Esto comenzó a suceder inesperadamente hoy y no tengo idea de por qué, la conexión SSH solía funcionar bien antes de eso.

ingrese la descripción de la imagen aquí

¿Qué causa este error, y hay alguna forma de solucionarlo?

Editar: El servidor es un cuadro de Windows, no Linux, y está ejecutando sshd de Cygwin. También encontré esta publicación que creo que podría ser relevante: https://cygwin.com/ml/cygwin/2016-03/msg00097.html


1
Parece que / bin / bash se ha eliminado o su usuario no tiene permisos para ello. Probablemente deberías contactar al administrador y pedirle que lo arregle.
— Mikael Kjær

¿Puedes iniciar sesión con otro usuario?
— Zumo de Vidrio

@ MikaelKjær Hm, si falta bash, ¿no sería el mensaje de error "comando no encontrado" o algo así? Sin embargo, es probable que tengas razón sobre los permisos.
— sashoalm

@ZumodeVidrio Le pregunté a una de mis colegas y ella obtuvo el mismo error.
— sashoalm

Este error bash proviene del servidor Linux. La causa es quizás un mal comando en el archivo .bashrcdel perfil de usuario al que se está conectando.
— harrymc

Respuestas:


4

Pasé mucho tiempo tratando de resolver el mismo problema. Accidentalmente tropecé con una solución aquí:

https://cygwin.com/ml/cygwin/2015-08/msg00162.html

En el servidor cygwin:

  1. Vaya a Panel de control> Herramientas administrativas.
  2. Seleccione Política de seguridad local> Políticas locales> Asignación de derechos de usuario.
  3. Haga clic con el botón derecho en Reemplazar un token de nivel de proceso y seleccione Seguridad o Propiedades.
  4. Haga clic en Agregar para agregar la cuenta en la que se está ejecutando sshd. (cyg_server en mi caso)
  5. gpupdate
  6. Reiniciar el servicio sshd

Ahora intenta conectarte a través de ssh ... Tuve éxito


2

Tuve este problema y lo resolví.

Inicialmente seguí la respuesta de Константин Брызгалов y pude iniciar sesión con una contraseña, pero no pude hacer funcionar la autenticación de clave pública. (Había creado una cuenta de administrador local cyg_server manualmente).

En una investigación adicional, estaba leyendo esta página y decía que debía evitar tener tanto un dominio como una cuenta local. Lo comprobé y tuve ambos; aparentemente alguien más en mi organización está ejecutando un servidor cygwin y ya había creado un cyg_server en el dominio, que se confundía con mi cuenta local.

Eliminé mi cuenta local de cyg_server, desinstalé el servicio sshd y reinstalé como se describe en esa página, y todo funcionó a la perfección. El truco consistía en decir "no" para usar la cuenta cyg_server existente y decirle a ssh-host-config que creara una cuenta "cyg_server1". Creó una cuenta local y configuró todo correctamente. Específicamente:

  1. cygrunsrv --stop sshd
  2. cygrunsrv --remove sshd
  3. Panel Ctrl> Cuentas de usuario> Cuentas de usuario del administrador> (eliminar cuenta local de cyg_server)
  4. mkpasswd -l -d> / etc / passwd
  5. mkgroup -l -d> / etc / group
  6. ssh-host-config
    • sobrescribir = sí
    • estricto = sí
    • CYGWIN = ntsec
    • usuario para ejecutar = cyg_server1
    • contraseña = {...}

Al verificar las cuentas de usuario, verá que cyg_server1 es de hecho una cuenta local pero tiene una configuración adicional.


1

Había olvidado esa pregunta, pero al final resolví mi problema volviendo a ejecutar la instalación ssh-host-configde mi servidor Cygwin (afortunadamente también tuve acceso a RDP).

Eso era todo lo que se necesitaba, pero no tengo idea de por qué funcionó.


1

Gracias Константин Брызгалов por señalarme en la dirección correcta, tuve exactamente el mismo problema.

Aquí se puede encontrar una solución más completa: https://cygwin.com/faq.html#faq.using.sshd-in-domain En realidad, hay 3 configuraciones de política que necesitan tener configurado el servidor cyg:

  • Actuar como parte del sistema operativo (SeTcbPrivilege)
  • Crear un objeto de token (SeCreateTokenPrivilege)
  • Reemplazar un token de nivel de proceso (SeAssignPrimaryTokenPrivilege)

1

Aquí hay una manera más directa de hacer lo que dicen las publicaciones anteriores de Константин Брызгалов y Mun-dee. Ejecute un terminal cygwin como administrador y luego:

detener el sshd en ejecución:

net stop sshd

otorgue al usuario ssh los privilegios necesarios:

derechos de edición -a SeTcbPrivilege -u cyg_server

editrights -a SeAssignPrimaryTokenPrivilege -u cyg_server

editrights -a SeCreateTokenPrivilege -u cyg_server

reiniciar sshd:

inicio neto sshd

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.