Permitir a múltiples usuarios el acceso SSH a la instancia de Ubuntu que se ejecuta en Amazon Web Services

5

Parece que se han hecho preguntas similares antes, pero el problema que estoy teniendo no se ha planteado ni respondido como parte de las respuestas proporcionadas a las otras preguntas. Asi que...

Estoy usando una instancia de Amazon EC2 que ejecuta Ubuntu, y ya he descubierto cómo obtener acceso SSH con PuTTY con el inicio de sesión "ubuntu". Pensé que podría simplemente hacer unos pocosradios de uso, y en cada una de las carpetas de inicio de los otros usuarios, agregar ".ssh / Authorizedkeke" como estaba en la carpeta de inicio "ubuntu", y luego SSH al usar los otros nombres de usuario (pero la misma clave privada) funcionaría sin problemas; esto no sucedió (recibí el mensaje "El servidor rechazó nuestra clave").

Parece que hay algo que desconozco sobre cómo funciona el emparejamiento de claves SSH ... ¿alguna idea?

Sumario rápido:

  • Acceso SSH con PuTTY usando "ubuntu" como nombre de usuario: funciona bien.
  • Crear otros usuarios, copiar ".ssh / Authorizedkeke" de la carpeta de inicio "ubuntu" a otras carpetas de inicio de usuario, y SSH con la misma clave privada (iniciar sesión con un nombre de usuario diferente) no funciona. Recibiendo el mensaje "El servidor rechazó nuestra clave".

ACTUALIZACIÓN: he editado el archivo '/ etc / ssh / sshd_config' para descomentar la línea:

AuthorizedKeysFile %h/.ssh/authorized_keys

(que no sabía que estaba comentado por defecto), pero aún así no tuve suerte. Solo pensé en mencionarlo si eso fuera una sugerencia ...

ACTUALIZACIÓN2-IMPORTANTE: Gracias a la respuesta de Nikolay, me di cuenta de que había pasado por alto los permisos del archivo. Aunque los permisos no eran el problema (creo), resulta que cuando usé sudo para copiar '.ssh / Authorizedkeys' a las otras carpetas de usuario agregadas, el propietario de la carpeta y el archivo recién creados era en realidad root . La pregunta parece ser ahora: ¿cómo puedo cambiar el propietario de la carpeta / archivo (ya que un usuario no root probablemente no podría verificar una clave que es propiedad de root )? Haré una búsqueda para ver si aparece la respuesta ...

ACTUALIZACIÓN3-IMPORTANTE: he cambiado el permiso tanto para '.ssh' como para 'autorizado_claves', así como para el propietario y el grupo de root a otro usuario , pero cuando uso el nombre de usuario otheruser cuando intento SSH, sigo recibiendo el "Servidor rechazado Nuestro mensaje clave. Lo siento, agregué prematuramente la sección de respuestas ... la respuesta proporcionada parecía (y todavía parece) la respuesta correcta, lógicamente hablando, así que dije que fue respondida antes de probar ...

ACTUALIZACIÓN4-IMPORTANTE: la respuesta de Nickolay es correcta (que dije que no estaba en ACTUALIZACIÓN3). Mi problema (después de seguir la respuesta de Nickolay) en realidad no estaba relacionado con ninguna advertencia de SSH. Cuando creé la cuenta de otro usuario , accidentalmente especifiqué el shell como en /bin/bash/lugar de /bin/bash(observe el extra / ). Encontré esto porque todo el trabajo que había hecho era de la cuenta "ubuntu", y después de frustrarme, intenté iniciar sesión en otro usuario después de SSHing con ubuntu, lo que me devolvió el error "No se puede ejecutar / bin / bash /: no es un directorio". Después de cambiar el shell con chsh -s /bin/bash otheruser, pude iniciar sesión en otro usuario desde ubuntu, pero lo más interesante es que esto me permitió usar SSH usando a otro usuario como usuario sin recibir el ". Entonces ... la incapacidad de instanciar un shell para usar de alguna manera devuelto como un mensaje clave rechazado. ¿Hay algún lugar donde debería llamar la atención sobre esto ...? En cualquier caso, gracias de nuevo a Nickolay.

RESPUESTA: La respuesta de Nickolay cubre lo que se debe hacer en esta situación, incluido el uso del chowncomando para cambiar la propiedad de la carpeta / archivo como se menciona en el enlace provisto debajo de su respuesta. (También usé el chgrpcomando ya que el grupo también era root)

Estos son los pasos que utilicé (es posible que tenga que introducir estos comandos sudo):

  • chmod go-w otheruser otheruser / .ssh
  • chmod 600 otheruser / .ssh / optional_keys
  • chown 'otheruser' otheruser / .ssh
  • chown 'otheruser' otheruser / .ssh / Authorizedkeys
  • chgrp 'otro usuario' otro usuario / .ssh
  • chgrp 'otro usuario' otro usuario / .ssh / Authorizedkeys

NOTA: Los dos últimos comandos son para cambiar el grupo al que están asociadas la carpeta '.ssh /' y el archivo 'autorizado_claves'. Es posible que desee que sean algo más, pero quería mantenerlos consistentes con los otros archivos / carpetas en la carpeta de inicio de ese usuario.

M y M
fuente
Creo que necesito hacer algo en / etc / ssh / pero no estoy muy familiarizado con estos ajustes ...
MandM
Solicité que se editara su respuesta y también intenté editar su respuesta para que fuera más descriptiva (es decir, incluir pasos y hacer referencia al enlace que proporcionó en el comentario), pero tampoco sucedió. Seguiré adelante y excepto la respuesta, pero voy a explicarlo en la pregunta.
MandM

Respuestas:

1

También debe establecer los permisos correctos para la carpeta .ssh y claves_autorizadas: chmod 700 ~ / .ssh && chmod 600 ~ / .ssh / optional_keys Además, el propietario de estos archivos debe ser el mismo que el usuario que intenta iniciar sesión.

Nickolay Olshevsky
fuente
Gracias por la respuesta Nickolay. Hice una copia directa de 'ubuntu / .ssh / Authorized_keys' a 'otheruser / .ssh / Authorized_keys'. Sin embargo, debido a que estaba en la carpeta de un usuario diferente, me negaron la capacidad de hacer la copia ya que estaba "ubuntu" no " otro usuario ". Utilicé sudo para hacerlo, por lo que el propietario de la carpeta ".ssh /" y el archivo "authroized_keys" es en realidad root . Asumiendo que uno necesitaría privilegios de root para solicitar el archivo autorizado de claves propiedad de root, ¿cómo podría uno cambiar la propiedad del archivo ...?
MandM
Consulte estas preguntas frecuentes: openssh.org/faq.html#3.14 autorizado_keys para cada usuario debe ser propiedad de este usuario más el archivo debe tener los permisos correspondientes. También puede verificar el registro para ver si hay mensajes de 'autenticación rechazada' de sshd.
Gracias Nickolay, si desea editar su respuesta para asegurarse de que el usuario que posee el archivo es importante (especialmente si la propiedad ha cambiado a root durante un sudo cp ...comando, continuaré y consideraré esta como la respuesta.
MandM
Nickolay: gracias por tu respuesta nuevamente, sin embargo, es posible que haya saltado el arma al aceptar tu respuesta. Los pasos proporcionados no parecen haber solucionado el problema. Cambié los permisos y el propietario (y el grupo) asociados con '.ssh /' y ' certified_keys ' a otro usuario desde la raíz , pero el uso de SSH con otro nombre de usuario aún regresa con el mensaje "El servidor rechazó nuestra clave".
MandM
Nickolay, resulta que tu respuesta realmente funcionó. Pero, GUAU, el problema de mi parte es difícil de creer. Cuando creé la cuenta de otro usuario, especifiqué bash como el shell para usar. Obviamente, copié los '.ssh' y las 'claves_autorizadas' con el comando sudo, pero nunca intenté iniciar sesión en esas cuentas. Finalmente intenté esto y recibí el error "Cannot execute /bin/bash/: Not a directory"al iniciar sesión en otro usuario. Me di cuenta de que había especificado "/ bin / bash /" en lugar de "/ bin / bash" como el shell. La eliminación de "/" me permitió iniciar sesión en la cuenta TAN BIEN COMO finalmente SSH en la cuenta
MandM