117 votos

¿cómo se crea una clave ssh para otro usuario?

Estoy intentando crear una clave ssh para otro usuario. Estoy conectado como root. ¿Puedo editar los archivos generados por ssh-keygen y cambiar root por el usuario que quiero?

6 votos

Si generas la clave para el usuario también tienes que tener un método seguro para obtener la clave privada y su frase de paso para el usuario. Es mucho mejor que el usuario genere la clave y luego te envíe por correo electrónico la clave pública.

0 votos

¿Pero no es difícil si no se permite el acceso con contraseña? Si soy de clave, y configuro un nuevo usuario, éste no puede iniciar sesión para configurar su clave.

0 votos

No tengo suficiente rep para hacer una respuesta así que hice un gist que es un pequeño script para crear un usuario, generar una clave ssh, copiar esa clave pública a ~/.ssh/authorized_keys y luego comprimirla para enviársela. gist.github.com/robmsmt/b8300e7a0d711a7616e948a8232289a5

180voto

Alex Puntos 381

Hay no hay información de usuario en las claves SSH .

El último campo de una clave pública es un comentario (y se puede cambiar ejecutando el siguiente comando ssh-keygen -C newcomment ).

No es necesario hacer nada especial para crear una clave para otro usuario, sólo hay que ponerla en la ubicación correcta y establecer los permisos.

9 votos

Esa es la respuesta correcta.

1 votos

Acabo de probar y confirmar, no sólo es sólo un comentario, pero se puede quitar y las teclas siguen funcionando. ¡Siempre pensé que era importante! Gracias por dar la respuesta correcta. Al igual que los comentarios anteriores, tengo una razón para la creación de claves para otros usuarios, pero no voy a decir por qué, así que no hay argumento.

0 votos

Este nombre de usuario en la clave pública me hace pensar que el nombre de usuario está codificado en la clave pública y la clave pública no será válida si se cambia el nombre de usuario. Muchas gracias.

89voto

nce Puntos 649

Podrías hacerlo con ssh-keygen Sin embargo, recuerde que la clave privada está destinada a ser privada para el usuario, por lo que debe tener mucho cuidado de mantenerla a salvo, tan segura como la contraseña del usuario. O incluso más segura, ya que no es probable que el usuario tenga que cambiarla en su primer acceso.

ssh-keygen -f anything crea dos archivos en el directorio actual. anything.pub es la clave pública, que puede añadirse a la clave del usuario ~/.ssh/authorized_keys en cualquier servidor de destino.

El otro archivo, llamado simplemente anything es la clave privada y, por tanto, debe ser almacenada de forma segura para el usuario. La ubicación por defecto sería ~username/.ssh/id_rsa (aquí llamado id_rsa que es el predeterminado para las claves rsa). Recuerde que el .ssh no puede ser leído o escrito por nadie más que el usuario, y el directorio personal del usuario no puede ser escrito por nadie más que el usuario. Del mismo modo, los permisos deben ser estrictos en la clave privada, también: Lectura/escritura sólo para el usuario, y el directorio .ssh y el archivo de clave privada deben ser propiedad del usuario.

Técnicamente se puede almacenar la llave en cualquier lugar. Con ssh -i path/to/privatekey podría especificar esa ubicación, mientras se conecta. De nuevo, la propiedad y los permisos adecuados son críticos y ssh no funcionará si no los tienes bien.

6 votos

+1 por expresar que es una clave privada(!)

55 votos

Estás asumiendo que el usuario es una persona real. Si el inicio de sesión es un usuario no interactivo utilizado para realizar tareas de utilidad (por ejemplo, ejecutar maine scripts en servidores remotos), entonces sí, probablemente generaría la clave para ese usuario manualmente. Por supuesto, eso tiene sus propias implicaciones de seguridad, pero esa es otra historia.

2 votos

@Rilindo ssh -i a una clave privada para un proceso sin privilegios es la forma en que manejo más de un proceso de respaldo rsync automatizado. :)

22voto

Rilindo Puntos 4225

Conviértase en usuario utilizando su y ejecutar la llave como ese usuario:

[root@kvm0001 ~]# su - joeuser
[joeuser@kvm0001 ~]$ ssh-keygen -t dsa (or rsa1 or rsa, depending on your security requirements)
Generating public/private dsa key pair.
Enter file in which to save the key (/home/joeuser/.ssh/id_dsa):

0 votos

¿Por qué especificar la DSA?

0 votos

Ups, la fuerza de la costumbre. Permítanme actualizar.

5 votos

deberías usar rsa (o posiblemente una de las variantes de la curva elíptica). dsa está limitado a tamaños de clave inseguros. rsa1 es un formato heredado de ssh1 que ya nadie debería usar.

7voto

Justin Kowalsky Puntos 61

Como se ha visto aquí , puedes usar chmod para cambiar los permisos de lectura de la carpeta del usuario al que quieres añadir la clave SSH.

vim /home/username/.ssh/authorized_keys

A continuación, basta con pegar la clave en una nueva línea en la parte inferior de ese archivo

1 votos

El enlace está muerto...

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: