¿Cómo transferir mis claves SSH a otra máquina?

42

Tengo cuentas en dos máquinas: H1 y H2. Creé claves ssh en H1 y lo instalé en S1. Ahora puedo pasar a S1 desde H1. Quiero hacer lo mismo desde H2. ¿Cómo instalo las claves ssh generadas en H1 en H2?

Bruce
fuente
2
Dado que ssh-copy-ides una solución más infalible (sin sobrescribir las claves existentes o copiar accidentalmente la clave privada en lugar de la clave pública ) y una solución menos conocida, considere aceptar una de esas respuestas como la respuesta aceptada.
agtoever

Respuestas:

28

Editado: si posee ambas máquinas, puede compartir su clave privada. Pero esta solución no es segura para el caso de una computadora portátil robada o para máquinas que no posee.

Puede copiar sus claves privadas de H1 a H2, si desea utilizar la misma clave privada para poder iniciar sesión de H2 a S1. Cuando en H1 haces los comandos:

H1$ ssh H2 mkdir ~/.ssh
H1$ scp  ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/

¡Advertencia! Esto eliminará y reemplazará cualquier clave privada que tenía en H2.

La mejor manera es generar nuevas claves privadas en H2 ( ssh-keygen) e instalar su parte pública en S1 con ssh-copy-idutil. En este caso más seguro, tendrá dos juegos de llaves; uno es para el inicio de sesión H1-S1 y el segundo para el inicio de sesión H2-S1. Habrá dos claves públicas autorizadas en S1. Y podrá revocar cualquiera de ellos o ambos (por ejemplo, cuando le roban su computadora portátil, o el propietario de la máquina decide deshabilitar su cuenta y reutilizar todos sus archivos).

osgx
fuente
8
Copiar una clave privada no es realmente una buena idea. Tener una sola clave en varias ubicaciones 1. lo hace más vulnerable, 2. aumenta el riesgo de que pierda el control de todas las ubicaciones, 3. no le permite deshabilitar el acceso desde una sola ubicación. Desde el punto de vista de la seguridad, debe generar un nuevo par de claves en cada ubicación: la solución de Mu Qiao.
pabouk
27

Utilizar ssh-copy-id

SINOPSIS

ssh-copy-id [-i [archivo_identidad]] [usuario @] máquina

DESCRIPCIÓN

ssh-copy-id es un script que usa ssh para iniciar sesión en una máquina remota y agregar el archivo de identidad indicado al archivo ~ / .ssh / Authorizedkeys de esa máquina.

Mu Qiao
fuente
1
@ Quiero hacer ssh de H2 a S1. Quiero transferir e instalar mi clave privada y pública de H1 a H2. ¿Esto hará eso?
Bruce
3
@Bruce no, necesitas regenerar las claves en h2 y usar ese comando para copiar tus claves. Otro enfoque es dejar que h1 y h2 compartan el directorio de inicio.
Mu Qiao
9

Usa dos claves privadas

Configure H2 usando el mismo proceso (pero no la misma clave privada) que hizo cuando configuró H1:

  • Nunca hay una buena razón para copiar una clave privada de otra máquina. Si aún no ha generado una clave privada nueva en H2, hágalo ahora. Genere también la clave pública correspondiente. En una terminal en H2,

tipo: ssh-keygen -t rsa

  • Copie la clave pública de su H2 en el servidor. En una terminal en H2,

tipo: ssh-copy-id [email protected]

(pero use su nombre de usuario real en S1 y el nombre de host de S1, y luego escriba su contraseña en S1 cuando se lo solicite).

Esto instala la clave pública de su estación de trabajo en el ~/.ssh/authorized_keysarchivo para ese usuario en el servidor.

  • No hay paso 3. A partir de ahora, puede iniciar sesión en el S1 desde su H2 y también iniciar sesión en el S1 desde su H1.

detalles

Supongo que lo que realmente estás preguntando es

  • Tengo un servidor ("S1")
  • Inicio sesión en mi servidor desde mi computadora portátil personal ("H1")
  • También quiero iniciar sesión en mi servidor desde mi estación de trabajo ("H2").

¿Cuál es la forma correcta de hacer eso?

  • Supongo que simplemente podría iniciar sesión con la misma contraseña desde ambos lugares. Esa no puede ser la forma correcta, porque todos dicen que la autenticación de clave pública es mucho mejor que las contraseñas. (una)
  • Supongo que podría simplemente copiar la clave privada de mi computadora portátil a mi estación de trabajo. Esa no puede ser la forma correcta, porque todos dicen que la clave privada nunca debe abandonar la máquina del cliente.

A la gente se le ocurre que una cuenta en un servidor tiene un solo nombre de usuario y, por supuesto, una sola contraseña autorizada.

Los sistemas de clave pública como ssh son mejores que el sistema de contraseña: una cuenta en un servidor tiene un solo nombre de usuario y cualquier número de claves públicas autorizadas , todas ellas enumeradas en el ~/.ssh/authorized_keysarchivo.

( más detalles )

David Cary
fuente
Perdóname por repetirme .
David Cary
0

¿Ssh-copy-id haría el trabajo por usted: http://linux.die.net/man/1/ssh-copy-id ?

Alex Wilson
fuente
@ Quiero hacer ssh de H2 a S1. Quiero transferir e instalar mi clave privada y pública de H1 a H2. ¿Esto hará eso?
Bruce
2
Si ha iniciado sesión en S1 o H1 (que ahora tiene su clave) usando ssh-copy-id le permitirá transferir su clave pública (no privada) al H2. En general, es mejor limitar la cantidad de máquinas en las que está instalada su clave privada. Intente mantenerlo en algunas máquinas seguras solo para evitar su pérdida.
¿Cómo copio mi clave privada a H2?
Bruce
0

Para cambiar las claves SSH de una computadora a otra. Simplemente copie la carpeta completa desde ~ / .ssh desde H1 (máquina antigua) a la carpeta de contenido ~ / .ssh de la nueva máquina H2.

Ahora intenta:

ssh [email protected] (su ip S1)

Lo más probable es que reciba una advertencia de permiso para corregir esa ejecución:

chmod 400 ~ / .ssh / id_rsa

Ahora de nuevo:

ssh [email protected] (su ip S1)

Funcionará bien ahora.

shaurya uppal
fuente