Me parece que esto es inseguro; cualquier sitio en el que confíe con una intención nefasta [o que haya sido pirateado] podría tomar mi clave privada cuando me conecte por primera vez, y usarla para ingresar a otros sitios.
¿Puede alguien que comprenda SSH verificar que es seguro usar un par de claves en todas partes y, de ser así, tal vez explicar por qué?
Las claves públicas funcionan en función de la autenticación por desafío. Básicamente, le das a varios sitios tu clave pública, por lo que cada sitio puede presentar un desafío para ti. Este desafío es único cada vez y solo puede ser respondido por una persona con una clave privada.
Un ejemplo simplificado sería si el servidor toma su clave pública y cifra un mensaje como "La clave de sesión para el usuario X el 19 de diciembre a las 16: 30: 03.351213 UTC es XPa7sK35WjMgAezrPmG1Sq4CV7nsFN1Uc3TRW6P8Evc". Su computadora cliente recibe el mensaje cifrado, lo desencripta con su clave privada y luego envía la clave de sesión desencriptada al servidor, validando que tiene la clave privada en su poder sobre la cual el servidor lo autentica. (En la práctica, a menudo es más complicado que el servidor tenga claves de host públicas / privadas, por lo que puede cifrar sus mensajes en el servidor y autenticar que el servidor es quien dice ser).
Tener su clave pública no le da a un servidor malintencionado métodos de ataque adicionales, con la excepción de tratar de factorizar el módulo desde su clave pública para recrear su clave privada. Esto solo es posible si su clave es demasiado pequeña, es decir, las claves de 512 bits se descifraron hace una década, se informó que las claves RSA de 768 bits se descifraron el año pasado (con aproximadamente 10 ^ 20 operaciones; o 2000 años en un solo núcleo de un procesador moderno); Las claves de 1024 bits siguen siendo seguras, y el valor predeterminado de ssh es las claves de 2048 bits.