ssh-copy-id - permiso denegado (publickey) [cerrado]

30

Quiero configurar el túnel ssh para el servidor mysql que está en la computadora que tiene una máquina virtual. Además, el túnel debe funcionar si se reinicia la máquina.

Digamos que A es una computadora con software de Linux. B - máquina virtual en la computadora A.

MySQL está en B.

C - es una máquina virtual en la computadora A que quiere conectarse a MySQL en B.

Ahora por este artículo: http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/

Intento copiar la clave pública al servidor remoto. Supongo que necesito copiarlo en la computadora A.

ssh-copy-id -i id_rsa.pub.bak [user]@[IP of A] -p [port of A]
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Ahora intenté ingresar la frase de contraseña del archivo id_rsa.pub.bak. Negado

Luego veo que usa la clave en /home/[userfont>/.ssh/id_rsa que es diferente de la clave pública que estoy tratando de copiar, quiero decir, por supuesto, la clave privada es diferente, pero quiero decir que copio la clave pública de otra llave privada. Así que intenté usar la frase de contraseña. También negado.

¿Cómo podría depurar por qué se deniega la frase de contraseña?

Actualizar

Basado en comentarios, creé un nuevo archivo público llamado id_rsa.pub donde todo está en una línea ahora

y ejecutar y aún obtener error.

ssh-copy-id -i id_rsa.pub [host and port] -vvv
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Actualizar

Se verificaron los permisos en la carpeta .ssh y el archivo autorizado de claves en la computadora A: son 700 y 600, por lo que el comentario dice que son buenos.

Actualizar

Intenté configurar la autenticación de contraseña sí en una computadora y reiniciar el servicio. Reiniciando como por la respuesta no funcionó, escribió sshd no reconocido, así que reinicié usando:

sudo /etc/init.d/ssh restart

Luego intenté nuevamente en la máquina C para copiar en una máquina.

ssh-copy-id -i id_rsa.pub [user@host] -p [port] -v

y sigue igual:

Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Si voy a copiar la clave manualmente a claves_autorizadas, veo que la clave pública ya existe, la misma que quiero copiar. Le pregunté a mi compañero de trabajo, dijo que no lo copió. Así que ni siquiera entiendo cómo puede estar allí.

Ok, si está allí, sería bueno, pero permanecer allí no me permite conectarme con ssh sin ingresar la frase de contraseña. Pero pude conectarme con ingresar la frase de contraseña. Entonces, algo está claramente mal aquí. Y la clave que estoy tratando de copiar es con una frase de contraseña vacía. Cuando me conecté con ssh, ingresé una frase de contraseña que no estaba vacía.

La misma clave pública no puede aceptar una frase de contraseña vacía y una contraseña no vacía, eso tiene sentido. Pero entonces, ¿por qué la clave pública que estoy tratando de cargar es la misma que la del archivo autorizado_claves si las frases de contraseña son diferentes? No revisé todos los caracteres, pero es poco probable que las teclas sean tan similares que el principio y el final sean los mismos, incluso cuando la frase de contraseña sea diferente, creo.

Darius.V
fuente
¿Qué archivos comienzan con id_rsa? Esperaría ssh-copy-idfallar con un mensaje de error como lo llamas, ya que espera que un archivo termine con .pub. Como el suyo termina con .bakél, probablemente lo usaría id_rsa.pub.bak.pub.
nlu
@nlu: tengo id_rsa, que copié arrastrando y soltando el archivo usando el explorador ftp del bloc de notas. También tengo id_rsa.bak que creé con contenido nano y pegado con el mouse desde notepad ++ pero parecía que tenía el mismo texto pero de alguna manera 2 columnas. Y también tengo id_rsa.pub.bak que también hizo con nano. En realidad tiene 3 líneas, pero el original tiene todo en una línea. No sé si importa. Pero como vemos, no recibí un mensaje de error sobre los nombres de archivo.
Darius.V
1
Lo hace. Vea aquí, por ejemplo: snailbook.com/faq/publickey-userauth.auto.html ("Si usa un editor de texto, tenga cuidado de que no rompa las líneas en este archivo").
nlu
La pregunta está cerrada porque piensan que no es un sistema en el entorno empresarial, pero estaba resolviendo el problema del entorno empresarial.
Darius.V

Respuestas:

25

En realidad, necesita iniciar sesión para copiar su clave, no tiene acceso a la máquina remota (autenticación de clave y contraseña no válida deshabilitada):

Vuelva a habilitar la autenticación passwd en / etc / ssh / sshd_config:

PasswordAuthentication yes

Luego reinicie el servicio:

service sshd restart

Copia tu clave pública:

ssh-copy-id -i ~/.ssh/id_rsa.pub USER@HOST -p PORT
[Enter user password]

Intente iniciar sesión nuevamente, no se requiere contraseña.

Luego deshabilite la autenticación de contraseña.

Nabil Bourenane
fuente
¿Qué sucede si configuro PasswordAuth en yes en el servidor en el que quiero iniciar sesión y puedo conectarme con masilla usando una contraseña, pero ssh-copy-id todavía no solicita contraseña y solo escribe Permiso denegado (clave pública)? ?
Darius.V
hey quiero decir gracias !!! ¡¡¡Salvaste mi día!!! ¡¡¡muchas gracias!!!
尤川豪
Gracias a @Nabil, esto funciona a partir de Ubuntu 18.04 también. Solo una advertencia para futuros lectores: Edite / etc / ssh / sshd_config según las instrucciones y NO ssh_config, por descuido (¡como lo hice!). Además, ssh-copy-id USER @ HOST es evidentemente suficiente.
Snidhi Sofpro
12

Permission denied (publickey) es el servidor SSH remoto que dice "Solo acepto claves públicas como método de autenticación, vete".

Ese es su principal desafío: ingresar al sistema remoto. Una vez que pueda hacer eso, puede cargar su clave:

  • Uso ssh-copy-id: le permitirá especificar una clave diferente si está en proceso de reemplazar la anterior, por ejemplo.
  • Edite el usuario remoto ~/.ssh/authorized_keyspara agregar su clave manualmente.
Oli
fuente
5

Encontré el problema finalmente.

En realidad no necesité copiar la clave pública. La misma clave pública es para ambas claves privadas, con frase de contraseña y sin frase de contraseña. Pensé que tenía una clave privada sin frase de contraseña, pero en realidad no la tenía. Solo tenía .ppk sin frase de contraseña. Esa fue la falta de comunicación. Entonces el compañero de trabajo creó una clave privada sin frase de contraseña y ahora podía iniciar sesión usando ssh sin frase de contraseña. Leí que tener sin frase de contraseña es malo, pero el compañero de trabajo dice que está bien. Necesitaba sin frase de contraseña porque necesito ejecutar el script de shell al reiniciar; quiero iniciar autossh en el reinicio de la computadora.

Este tipo de solución es esta vez: si desea iniciar sesión sin frase de contraseña, compruebe si su clave privada realmente no tiene frase de contraseña.

Darius.V
fuente