copiar claves privadas ssh a otra computadora

52

Necesito usar otra computadora para acceder a mi servidor ssh. Esto se debe a que un vpn implementado recientemente en mi universidad no funciona en mi computadora actual y he perdido el acceso al servidor.

Yo ssh a través de claves ssh cifradas. ¿Puedo copiar estas claves a la nueva computadora (en la que funciona la VPN)? Intenté copiar los archivos id_rsay id_rsa.puben la ~/.sshcarpeta, pero no reconoce las claves y no hay ningún mensaje para ingresar una contraseña para descifrar las claves.

EDITAR: No puedo acceder al servidor para generar un nuevo par de claves para la nueva computadora y estoy fuera del país, así que no puedo acceder físicamente a él.

Gracias.

benj
fuente
¿Es " id_rsh" un error tipográfico?
ændrük
1
Puede aprender más sobre el problema al intentarlo ssh -v -i ~/.ssh/id_rsa ssh-server.
ændrük
Probé eso. Parece que envía las claves, pero nunca pide una contraseña para desencriptarlas. También recibo un extraño mensaje genérico "Roaming no permitido por el servidor". Supongo que las claves privadas no están destinadas a ser copiadas;). Parece que voy a tener que confiar en alguien con acceso físico para iniciar sesión manualmente en mi servidor y cambiar la configuración de ssh. Gracias por tu ayuda.
benj
¡Las claves privadas nunca deben copiarse! ESTE ES UN RIESGO DE SEGURIDAD. Generar nuevas claves para cada nuevo dispositivo !!!!
Ether
@Ether ¿Es eso cierto? ¿Qué pasa si necesita reformatear una máquina? ¿Simplemente soplar la llave y comenzar de nuevo?
nipón el

Respuestas:

66

Verifique los permisos y la propiedad de su archivo de clave privada. Del manual ,

Estos archivos contienen datos confidenciales y el usuario debe poder leerlos, pero otros no deben poder acceder a ellos (leer / escribir / ejecutar). ssh simplemente ignorará un archivo de clave privada si es accesible por otros.

Por lo general, los archivos clave deberían tener este aspecto,

$ ls -l ~/.ssh/id_rsa*
-rw------- 1 benj benj 1766 Jun 22  2011 .ssh/id_rsa
-rw-r--r-- 1 benj benj  388 Jun 22  2011 .ssh/id_rsa.pub

que puede aplicar a través de:

$ chown benj:benj ~/.ssh/id_rsa*
$ chmod 600 ~/.ssh/id_rsa
$ chmod 644 ~/.ssh/id_rsa.pub
ændrük
fuente
2
Gracias. Es útil saberlo. Cuando copia un archivo a otra computadora, los permisos parecen cambiar para ese usuario. Ejecuté los guiones chmod y chown por si acaso. Lamentablemente no ayudó a mi problema.
benj
@John ツ esto podría haber sido parte del problema para mí, pero parecía haber otros problemas. Finalmente conseguí que alguien iniciara sesión físicamente en el servidor y configurara una nueva clave. Pero aceptará esto, ya que probablemente cubre un tema clave.
benj
A mí me funcionó, @benj.
Sinthia V
14

Intente ejecutar ssh-addantes de SSH en el servidor; luego se le pedirá la contraseña y luego las sshconexiones posteriores pueden usar su clave privada.

El ssh-addcomando agrega las claves al agente clave.

gertvdijk
fuente
1
No creo que este sea el problema, ya que 1) el cliente SSH puede hacer frente sin un agente de clave funcional, 2) el servidor no respondería con el mensaje "itinerancia no permitida" y 3) el cliente ssh tendría su propio mensaje de error al hablar con el agente clave falla de alguna manera. He hecho mis pensamientos al respecto como una respuesta .
gertvdijk
Esto solucionó el problema para mí. Consulte también la documentación de Github para esto .
Ionică Bizău
8

Las claves privadas cifradas mantienen su clave pública correspondiente sin cifrar . Así es como el cliente SSH puede conectarse al servidor remoto sin pedirle la contraseña (solo ofrece la parte pública en ese momento). Cada vez que el servidor acepta la clave pública, el cliente en su PC quiere descifrar la clave privada y le pedirá la frase de contraseña.

Ahora, siempre que el servidor solo acepte la conexión desde una dirección IP específica, esto ya se rechazó en el primer paso y explica el mensaje que recibió del servidor "Roaming no permitido por el servidor".

Por lo tanto, mi mejor suposición es que su servidor está restringido de alguna manera para permitir solo direcciones IP específicas para esta clave. Puede hacer esto de varias maneras, pero esta es común en ~/.ssh/authorized_keys:

from="192.168.1.2" ssh-rsa AAAAB3NzaC[...]

Para probar que puede leer la clave pública de una clave privada encriptada sin contraseña, ejecute:

ssh-keygen -y -f /path/to/private/key
gertvdijk
fuente
1
Este es un buen proceso útil para obtener una respuesta cuando tiene un problema con la conexión SSH. Gracias.
Sinthia V