Esto no es tanto una cuestión técnica como conceptual. Entiendo que la criptografía utilizada en una clave SSH es mucho más segura que una contraseña normal, pero no entiendo por qué se considera más segura.
La mayoría de los tutoriales que leo sugieren usar la autenticación de clave SSH en lugar de la autenticación de contraseña. Pero entiendo que cualquier persona que tenga acceso a una máquina cliente previamente aprobada podrá conectarse al servidor, lo que significa que el nivel de seguridad proporcionado por la clave SSH es tan fuerte como el nivel de seguridad del dispositivo físico. máquina cliente
Por ejemplo, si configuro una clave SSH en mi teléfono para conectarme a mi máquina doméstica, si pierdo mi teléfono y alguien logra desbloquearlo, podrán conectarse a mi máquina doméstica. Sé que luego puedo quitar la llave de mi teléfono de mi máquina doméstica, pero soy vulnerable hasta que me doy cuenta de que el dispositivo del cliente se ha perdido / violado.
¿He entendido mal algo o son esas preocupaciones válidas?
Respuestas:
Si su servicio SSH permite la autenticación basada en contraseña, su servidor SSH conectado a Internet se verá afectado día y noche por redes de bots que intentan adivinar los nombres de usuario y las contraseñas. La red de bots no necesita información, solo puede probar nombres populares y contraseñas populares. Hay un montón de gente llamada John con una contraseña de qwerty123. Aparte de cualquier otra cosa, esto obstruye sus registros.
Si su servicio SSH solo permite la autenticación de clave pública, un atacante necesita una copia de una clave privada correspondiente a una clave pública almacenada en el servidor. No solo pueden realizar ataques aleatorios, deben tener conocimiento previo de sus usuarios y poder robar una clave privada de la PC de un usuario autorizado de su servidor SSH.
El hecho de que las claves privadas a menudo estén protegidas por una frase de contraseña larga es de importancia secundaria.
Actualizar:
Como señalan los comentarios, y como he experimentado, mover su servicio SSH desde el puerto 22 a un puerto con un número alto hace una gran diferencia en la cantidad de intentos de inicio de sesión no autorizados que aparecen en sus registros. Vale la pena hacerlo, pero lo considero como una forma de seguridad por oscuridad (una falsa sensación de seguridad): tarde o temprano, los bots implementarán escaneo de puertos lento y sigiloso o se te dirigirá deliberadamente. Mejor estar preparado.
Siempre uso una frase de contraseña larga para proteger mi clave privada, supongo que esto es de particular importancia en dispositivos móviles que podrían perderse o ser robados con mayor facilidad.
Además, http://xkcd.com/538/
fuente
La lógica es que hay muchas más combinaciones de claves SSH que contraseñas, por lo que es mucho más difícil de adivinar. El uso de claves SSH también le permite deshabilitar la autenticación de contraseña, lo que significa que la mayoría de los ataques automáticos que circulan por Internet serán inútiles.
Con respecto a la seguridad física, no hay diferencia entre guardar una contraseña y tener una clave SSH sin cifrar en su dispositivo si se pierde o se la roban. La única ventaja que tendría es que nadie tiene su contraseña y, en teoría, podría asegurarse de que todos los dispositivos tengan diferentes certificados SSH para que pueda desactivar la de su teléfono.
Creo que también es posible proteger con contraseña las claves SSH.
fuente
Las contraseñas también pueden verse comprometidas por el control de su teclado "sobre su hombro". Además, el uso de contraseñas similares en muchos lugares es una debilidad, especialmente si la contraseña a veces se usa en una computadora menos segura con posibles registradores de teclas.
Tiene razón en que una clave no encriptada puede leerse en el disco duro si la computadora es robada, así que encripte con una contraseña.
Si su computadora se ve comprometida por el malware, está lleno de todos modos ... alguien puede obtener la clave cifrada y registrar su contraseña.
fuente