Uso de la misma clave privada SSH en varias máquinas

23

Tengo un repositorio de Github al que quiero acceder desde dos máquinas Linux diferentes.

Para la primera máquina, seguí las instrucciones de Github para generar claves SSH, y agregué la clave pública resultante a Github. Este cliente funciona bien.

Para el segundo cliente, copié el /home/{user}/.ssh/id_rsaarchivo del primer cliente. Pensé que esto podría ser todo lo que tenía que hacer, pero cuando trato de conectarme obtengo 'Permiso denegado (clave pública)'.

¿Qué me estoy perdiendo?

Yarin
fuente

Respuestas:

32

La misma clave SSH debería poder usarse desde varios clientes. Tengo diferentes claves SSH para diferentes redes y en realidad están almacenadas en una unidad USB encriptada que uso desde varias computadoras diferentes sin ningún problema.

SSH es muy exigente con los permisos de archivos, por lo que primero verificaría todos los permisos desde /home/{user}el id_rsaarchivo en sí.

SSH realmente no se preocupa por los permisos de escritura grupales o mundiales, así que asegúrese de tener chmod go-wsu directorio personal y el ~/.sshdirectorio para principiantes. También me aseguraría de que sean propiedad de tu usuario chown ${USER}:${USER}.

Para la clave SSH en sí, chmod 600ellos ...

Si lo desea, tengo información adicional sobre cómo administro mis claves SSH en mi respuesta a otra pregunta SSH.

Jeremy Bouse
fuente
3
Fueron los permisos. No tengo representante para votar, pero muchas gracias
Yarin
6

Si se le niega el permiso del final de Github, podría ser que no está recogiendo su archivo de clave SSH copiado, sino el valor predeterminado del sistema. Una forma fácil de evitar esto es ~/.ssh/configcrear un archivo excelente y poner lo siguiente en él:

Host github.com
  Hostname      github.com
  User          git
  IdentityFile  ~/.ssh/yourkeyfile

Esto obligará a su cliente SSH a usar esa clave solo para github.com.

Espero que esto ayude.

vmfarms
fuente
2
No tengo representante para votar pero gracias
Yarin
1

Sé que esto es antiguo, pero pensé en señalar que también debe copiar la clave pública al segundo cliente

(o recalcule con ssh-keygen -y -f ~ / .ssh / id_rsa_ ..> ~ / .ssh / id_rsa ... pub)

De 1]:

  1. Método de autenticación de clave pública: "publickey"

    El único 'nombre de método' de autenticación REQUERIDO es la autenticación de "clave pública"
    . Todas las implementaciones DEBEN soportar este método;
    sin embargo, no todos los usuarios necesitan tener claves públicas, y
    es probable que la mayoría de las políticas locales no requieran autenticación de clave pública para todos los
    usuarios en el futuro cercano.

    Con este método, la posesión de una clave privada sirve como
    autenticación. Este método funciona enviando una firma creada
    con una clave privada del usuario. El servidor DEBE verificar que la clave
    sea ​​un autenticador válido para el usuario y DEBE verificar que la
    firma sea válida. Si ambos se mantienen, la solicitud de autenticación DEBE ser
    aceptada; de lo contrario, DEBE ser rechazado. Tenga en cuenta que el servidor PUEDE
    requerir autenticaciones adicionales después de una autenticación exitosa.

Su cliente ssh comienza la autenticación enviando la clave pública (la firma mencionada en negrita arriba) al servidor. El servidor, si la clave pública es una clave autorizada, envía una ID de sesión aleatoria a su cliente. Luego, su cliente codifica esa ID de sesión con la clave privada y la envía de vuelta al servidor. El servidor decodifica esa ID de sesión utilizando la clave pública y, si coincide con la ID de sesión original, autentica a su cliente.

[1] [ http://www.openssh.org/txt/rfc4252.txtfont>[1]

Iglesia Jacob
fuente
0

Probablemente sea porque no copió el permiso del archivo en el segundo cliente.
Pero una clave privada es privada , la forma correcta es crear una nueva clave privada en el segundo cliente y luego agregar su clave pública a Github

radio
fuente
Estaba planeando hacer 1 par de claves por usuario en los múltiples clientes de cada usuario. Pero me parece que un par de claves para cada cliente de cada usuario se saldría de control ...
Yarin
Si usa la misma clave privada para cada usuario en cada máquina, parece estar bien. Solo verifique el permiso si copia usando scp con el indicador -p, debería estar bien
radio