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_config
tengo 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_keys
de 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_keys
como 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_files
y 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.log
dijo:
sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh
Google me dice que ~/.ssh/
debería ser 700 y ~/.ssh/authorized_keys
debería ser 600, así que lo hice. Ahora /var/log/auth.log
dice:
sshd: error: key_read: uudecode AAAAB3N [etc etc etc until about 3/4 of my public key]
fuente
sshd: error: key_read: uudecode AAAAB3N
errorauth.log
?authorized_keys
archivo, simplemente pegué mimykey.pub
archivo en la~/.ssh
carpeta 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_keys
no 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.key
para 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_keys
archivo 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 laputtygen
pantalla. Nuevamente, asegúrese de copiar y pegar el texto desde la PARTE SUPERIOR de laputtygen
pantalla (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
puttygen
correctamente!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-rsa
final 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_keys
usando root, por lo que era propiedad de root Tuvechown sshuser:sshuser ~/.ssh/authorized_keys
que 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_keys
el 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