Autenticación de clave SSH con múltiples computadoras

21

Estaba leyendo sobre la autenticación de clave SSH y configurándola con mis 3 computadoras en casa.

Tengo una computadora principal, la llamo "A", y otras dos, las llamo "B" y "C".

Ahora, según la documentación que he leído, ejecutaría ssh-keygen en B y C y colocaría las claves públicas en la computadora A, suponiendo que siempre usaré SSH en la computadora A, si estoy en B o C.

Pero, creo que los ejemplos de documentación que he leído asumen que solo se usará una computadora doméstica, digamos alguna otra computadora externa. En mi situación, ¿tiene sentido simplemente ejecutar ssh-keygen en una computadora y copiar los archivos a las otras? De esta manera, ¿solo necesito hacer una copia de seguridad de un juego de llaves? Y cuando inicio sesión en una computadora externa, solo tengo que configurarlo con 1 juego de claves, además de configurarlo con las tres computadoras.

¿Esto tiene sentido? ¿Algún defecto o nota de precaución a tener en cuenta?

Gracias.

linstar
fuente

Respuestas:

29

Teóricamente puede hacer ambas cosas, pero cada una tiene sus ventajas y desventajas:

De hecho, puede crear solo 1 clave, decir que es "suya" (como persona), asegurarla en algún lugar y copiarla en cualquier computadora que use. La ventaja es que puede conectarse a A desde donde quiera que vaya, siempre que posea su clave privada SSH. El inconveniente es que, siempre y cuando copie su clave privada de un lugar a otro, sea cual sea la forma, aumenta el riesgo de que alguien la lea mientras escucha la conexión. Peor aún, si la computadora C es robada, debe regenerar una nueva clave en todas las computadoras que usan esta clave y distribuir una nueva.

Por otro lado, el uso de 1 clave por usuario @ computadora tiene la ventaja de un mayor "control fino" sobre "qué" se puede conectar "dónde". Es la forma más común de hacerlo.

Si, por ejemplo, le diera la computadora C a su hermano / hermana / esposa / esposo / amigo / perro, o a un ladrón (sin su aprobación), solo tendría que quitar la llave de las "llaves autorizadas" de A archivo.

Entonces, incluso si significa "más claves en claves_autorizadas", sugiero el segundo enfoque.

mveroone
fuente
No puede descifrar una secuencia ssh con la clave privada del cliente y, según la configuración del servidor, tampoco puede descifrarla con la clave privada del servidor. zurlinux.com/?p=1772
Dan Merillat
Así es, y no es lo que quise decir. Me refiero a que si te roban tu clave privada, puedes usarla para conectarte a la computadora A desde cualquier otro lugar. Esto se puede mitigar agregando un FROM = "<IP>" al comienzo de la línea Authorized_keys. (vea la página de manual de ssh)
mveroone
después de copiarlo tuve que insertar mi contraseña para usarla en mi otra computadora, supongo que eso es algo de seguridad al menos :)
OZZIE
3

Usar las mismas teclas en las tres computadoras es definitivamente factible; lo hago todo el tiempo, principalmente por conveniencia.

Kwaio señala correctamente que esto aumenta el riesgo de que sus claves se vean comprometidas. Una posible solución sería separar los componentes clave privados y públicos. Asi que:

  • Todas las computadoras tienen su clave pública en el archivo autorizado_claves.
  • Mantiene 2 copias de su clave privada; uno está en una memoria USB alrededor de su cuello (para usar cuando se usa ssh para acceder a otra computadora), y el otro también está en una memoria USB en una caja fuerte en algún lugar (en caso de que pierda la primera copia).

Si una de sus computadoras es robada o su clave pública se ve comprometida, bueno, es solo una clave pública, ¿y qué?

Si su clave privada es robada o se pierde, inmediatamente establece generar un nuevo par de claves y actualizar las claves públicas en todas sus computadoras.

HTH.

ALAN WARD
fuente
2
Ok, pero ¿qué es HTH?
mikeserv
3
HTH = Esperanza que ayuda.
ALAN WARD
1
Sería prudente señalar que si coloca su clave privada en una unidad flash, sería prudente convertirla en una clave privada protegida con frase de contraseña. La incomodidad de tener que ingresar la frase de contraseña cada vez se puede mitigar mediante el uso de un agente (pagent en windows, ssh-agent en linux)
mveroone