81 votos

SSH clave pública - no hay métodos de autenticación compatibles disponibles (clave pública del servidor)

Tengo una 12.10 servidor de instalación en una máquina virtual con su configuración de red para puente (esencialmente será visto como un ordenador conectado a mi switch).

He instalado opensshd a través de apt-get y se puede conectar con el servidor usando la masilla con mi nombre de usuario y contraseña.

Yo entonces tratando de conseguir que el uso de la clave pública/privada de autenticación. Hice lo siguiente:

  1. Genera las claves usando PuttyGen.
  2. Movió la clave pública de a /etc/ssh/myusername/authorized_keys (estoy usando el cifrado de los directorios de inicio).
  3. Establecer sshd_config como así:

    PubkeyAuthentication yes
    AuthorizedKeysFile /etc/ssh/%u/authorized_keys
    StrictModes no
    PasswordAuthentication no
    UsePAM yes
    

Cuando conecto el uso de masilla o WinSCP, me sale un error diciendo que No admiten la autenticación de los métodos disponibles (servidor envía la clave pública).

Si me quedo sshd en modo de depuración, veo:

PAM: initializing for "username"
PAM: setting PAM_RHOST to "192.168.1.7"
PAM: setting PAM_TTY to "ssh"
userauth-request for user username service ssh-connection method publickey [preauth]
attempt 1 failures 0 [preauth]
test whether pkalg/pkblob are acceptable [preauth[
Checking blacklist file /usr/share/ssh/blacklist.RSA-1023
Checking blacklist file /etc/ssh/blacklist.RSA-1023
temporarily_use_uid: 1000/1000 (e=0/0)
trying public key file /etc/ssh/username/authorized_keys
fd4 clearing O_NONBLOCK
restore_uid: 0/0
Failed publickey for username from 192.168.1.7 port 14343 ssh2
Received disconnect from 192.168.1.7: 14: No supported authentication methods available [preauth]
do_cleanup [preauth]
monitor_read_log: child log fd closed
do_cleanup
PAM: cleanup

¿Por qué sucede esto y cómo puedo solucionarlo?

70voto

F21 Puntos 1426

Problema resuelto:

Parece que hubo un problema con mi archivo de claves públicas. PuttyGen creará un archivo de claves públicas que se parece:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20121022"
AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwu
a6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOH
tr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/u
vObrJe8=
---- END SSH2 PUBLIC KEY ----

Sin embargo, esto no funcionará, así que lo que tienes que hacer es abrir la llave en PuttyGen y luego copiarlo desde allí (este resultado en la clave es en el formato adecuado y en la 1 línea):

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022

Pega esto en authorized_keys entonces debería funcionar.

10voto

Dave Puntos 41

Sólo un consejo, espero que pueda ayudar a alguien con los dolores de cabeza que tenía. F21 es correcto que usted necesita una copia de la llave fuera de la PuTTYGen ventana en lugar de guardar el archivo, pero después de la copia, de la manera que usted pegue puede tener un impacto significativo sobre si su clave funcionará o no. Algunos editores se altere el texto como pegar, o hacer algo con el carácter de nueva línea o algo que hace que el archivo authorized_keys no válido.

Lo que he encontrado para ser los menos propensos a la rotura es de echo la cadena completa y redirigir la salida al archivo. Haga clic en la Masilla para pegar la clave de la cadena de la línea de comandos, funciona de esta manera (con el ejemplo dado más arriba):

echo [right-click-to-paste-here] > /etc/ssh/username/authorized_keys

Usted va a terminar con esto:

echo ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022 > /etc/ssh/username/authorized_keys

Otra ventaja de este método es que usted puede agregar múltiples llaves de esta manera mediante el uso de >> anexar en lugar de > sobrescribir, por ejemplo:

echo ssh-rsa AAAAB3<...snip...>rJe8= rsa-key-20121022 >> /etc/ssh/username

Espero que ayude a alguien.

9voto

Sharad Puntos 1

Ya que estábamos usando el tipo de clave (ppk en vez de pem)...

En nuestro caso, era un problema con los permisos de archivo authorized_keys en la carpeta de usuario del servidor. Tiene que ser - rw-r--r--... Es - rw-rw-r--

SSH es muy meticulosos sobre archivo permanentes.

6voto

Nicholas Orlowski Puntos 141

RESUELTO:

  1. Usted necesita descargar el puttyGEN y generar una clave pública y otra privada.
  2. He asignado una contraseña para la clave privada.
  3. a continuación, configure la clave privada de la masilla. Masilla->SSH->Auth->Vaya a la privada.
  4. Asegurarse de que tienen la misma ruta de claves pública y privada.
  5. Usted necesita para configurar la clave pública en el servidor. (En mi caso, he hablado con el servidor chico y le preguntó si él podría agregar mi clave pública en el servidor). Necesita la clave pública en el otro lado (el servidor) en la conexión.

6voto

Marko H Puntos 1

En mi caso la razón fue que el archivo de clave privado (.ppk) había sido quitado en agente de autenticación masilla es decir desfile. Acabo de actualizarlo nuevo al desfile allí y funcionado a la perfección después de eso.

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: