Estoy tratando de configurar la autenticación ssh con archivos clave en lugar de nombre de usuario / contraseña. El cliente es una caja de Windows que ejecuta PuTTY y el servidor es un servidor Ubuntu 12.04 LTS.
Descargué puttygen.exe y tuve que generar un par de claves. En /etc/ssh/sshd_configtengo esta línea:
AuthorizedKeysFile %h/.ssh/authorized_keys
y en el archivo de clave pública de mi cliente dice esto:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "[email protected]"
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAr3Qo6T5XU06ZigGOd3eKvfBhFLhg5kWv8lz6
qJ2G9XCbexlPQGanPhh+vcPkhor6+7OmB+WSdHeNO652kTofnauTKcTCbHjsT7cJ
GNrO8WVURRh4fabknUHPmauerWQZ6TgRPGaz0aucU+2C+DUo2SKVFDir1vb+4u83
[email protected]
---- END SSH2 PUBLIC KEY ----
Copié la parte de "ssh-rsa AAA" a "[email protected]" y la puse en el archivo ~/.ssh/authorized_keysde mi servidor (en mi propia carpeta personal). En PuTTY en Conexión> SSH> Auth, ingresé la ruta a la clave privada que generó en mi cliente y guardé la configuración de la sesión.
Reinicié el servidor ssh con
sudo service ssh restart
Ahora, si cargo el perfil en PuTTY (verifiqué que la clave privada todavía está en Conexión> SSH> Auth y que la ruta es correcta) y ejecuto el perfil, dice
Server refused our key
Traté de poner la clave pública en un archivo debajo del directorio, ./ssh/authorized_keys/ pero eso no ayudó, así que lo usé ./ssh/authorized_keyscomo un archivo , pegando la clave en él. También intenté generar un par de claves privada / pública en el servidor, poner la clave pública ./ssh/authorized_filesy cargar la privada en PuTTY en mi cliente. Reiniciar el servidor tampoco ayudó.
Descubrí que el error puede resolverse colocando la clave en un lugar fuera de la carpeta de inicio del usuario, pero eso solo es útil si la carpeta de inicio está encriptada, lo cual no es así.
También intenté generar una clave de 4096 bits, pensando que quizás 1024 era demasiado corto.
¿Cómo puedo hacer que esto funcione? ¡Gracias!
EDITAR:
Ok, /var/log/auth.logdijo:
sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh
Google me dice que ~/.ssh/debería ser 700 y ~/.ssh/authorized_keysdebería ser 600, así que lo hice. Ahora /var/log/auth.logdice:
sshd: error: key_read: uudecode AAAAB3N [etc etc etc until about 3/4 of my public key]
fuente

sshd: error: key_read: uudecode AAAAB3Nerrorauth.log?authorized_keysarchivo, simplemente pegué mimykey.pubarchivo en la~/.sshcarpeta y pensé que lo recogería. En cambio, lo que necesitaba en última instancia era ejecutar esto o editar y pegar debajo de otras teclas que pueden estar allí.cat mykey.pub >> authorized_keys. Parece simple ahora, pero la lección aprendida es que todas las claves públicas tienen que vivirauthorized_keysno solo en el~/.ssh/directorio. Alguien avise si esta no es una afirmación correcta.Acabo de encontrar este problema. A pesar de que la configuración se configuró correctamente, como ya se mencionó en este hilo (permisos en autorizado_claves, etc.), resulta que tenía la clave pública en el formato incorrecto. Fue en forma de:
Lo que no estaba funcionando. Pero lo tengo funcionando teniendo en la forma:
fuente
ssh-keygen -i -f filenameofwindowsformpub.keypara transformar la clave pública en el formato que entiende su servidor OpenSSH.El problema es que Windows utiliza una nueva línea diferente a Linux, por lo que al copiar la clave de Windows a Linux, hay un \ n al final de la línea que no puede ver en Linux en el editor.
Si sigue el /var/log/auth.log e intenta iniciar sesión, el error es como:
Si cambia su clave en Windows, por lo que está en una sola línea sin una nueva línea al final y la copia en Linux, debería funcionar (fue el truco para mí).
fuente
Tuve que cambiar los permisos al directorio de inicio
fuente
Tuve que cambiar los permisos de directorio ~ / .ssh de 770 a 700 y los permisos de archivo ~ / .ssh / Authorised_keys de 660 a 600.
Por alguna razón, eliminar los permisos de grupo solucionó este problema para mí.
fuente
El
~/.ssh/authorized_keysarchivo requiere que las claves estén todas en una línea. Si lo agregó a través de varias líneas como en su pegado anterior, intente unir las líneas.fuente
Esto es lo que funcionó para mí:
En
puttygen, después de haber generado sus claves, asegúrese de copiar y pegar la información del campo superior para ir a su archivo autorizado_claves. Si guarda su clave pública en su máquina cliente y luego la abre, el texto es diferente del texto en la parte superior de laputtygenpantalla. Nuevamente, asegúrese de copiar y pegar el texto desde la PARTE SUPERIOR de laputtygenpantalla (después de haber creado sus claves) en su archivo autorizado_claves que debe ubicarse en~/.ssh.fuente
Además de todas las respuestas anteriores, ¡asegúrese de copiar y pegar la clave
puttygencorrectamente!Si hace doble clic en la mayor parte de la cadena de teclas para seleccionarla, es posible que no obtenga la cadena completa, porque el cuadro de texto divide líneas en algunos caracteres, por ejemplo
+, de modo que no seleccione el texto después del+carácter ( que no puede ver porque el cuadro de texto es demasiado pequeño). Asegúrese de seleccionar la cadena completa manualmente, desde elssh-rsafinal del cuadro de texto.fuente
A veces puede ser un problema asociado con tener la clave pública en una línea, este enfoque parece resolverlo
fuente
para mí, el problema era que había creado
~/.ssh/authorized_keysusando root, por lo que era propiedad de root Tuvechown sshuser:sshuser ~/.ssh/authorized_keysque empezar a trabajarfuente
También me enfrenté a este error y lo resolví cambiando los permisos del archivo autorizado_claves a
600.fuente
El error común es que las personas usan el editor de texto (como Vim) y pegan el texto copiado antes de activar la "inserción" (presione + i en Vim antes de pegar)
fuente
De hecho, cambié
authorized_keysel permiso de644, luego resolví el problema.fuente
para depurar ssh abierto se puede usar:
ejecuta sshd en otro puerto 2020. ejecuta sshd como un programa actual, por lo que la salida va a la pantalla. si está cerrado está cerrado.
luego intenta conectarte.
explicación:
https://www.attachmate.com/documentation/rsit-unix-802/rsit-unix-guide/data/sshd_options_ap.htm
fuente
Estaba creando los archivos .ssh y Authorizedkeys mientras estaba conectado como root, lo que daba los permisos incorrectos. También colocó todos los archivos en el directorio raíz.
Cambiar la propiedad de esos archivos al usuario que desea no será una buena práctica, así que volví sobre mis pasos y me aseguré de haber iniciado sesión como el usuario con el que quería utilizar SSH y creé .ssh y Authorizedkeys nuevamente.
Instrucciones para conectar Win7 al servidor Xubuntu 15.04: Cómo crear claves SSH con masilla para conectarse a un VPS
fuente