La primera vez que accedo a un servidor, ¿cómo puedo forzar a SSH a que me dé la clave RSA y la almacene automáticamente si el usuario lo aprueba?
Actualmente me está ofreciendo la clave ECDSA. Como ya conozco la clave RSA, preferiría ver la clave RSA presentada en este momento.
Yo he tratado:
ssh -o RSAAuthentication=yes user@server
Lamentablemente, esto me da una clave ECDSA y el Are you sure you want to continue connecting (yes/no)?
mensaje.
Respuestas:
Al eliminar los algoritmos ECDSA de la
HostKeyAlgorithms
variable de configuración.Simplemente eliminé todos los algoritmos ECDSA de la lista predeterminada .
Puede, por supuesto, poner eso en su
.ssh/config
máquina:fuente
HostKeyAlgorithms [email protected],ssh-rsa
lugar.No use RSA ya que ECDSA es el nuevo valor predeterminado.
En el servidor haga esto:
ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
y registre ese número.En el cliente, puede enviar SSH al host y, si ve ese mismo número, puede responder el mensaje
Are you sure you want to continue connecting (yes/no)?
afirmativamente. Luego, la clave ECDSA se grabará en el cliente para uso futuro.fuente
Sí, OK, cambie a ECDSA pronto, pero mientras tanto intente esto:
fuente
FingerprintHash
opción es innecesaria, solo deja esa parte completa.Acabo de agregar esta línea
a
y está funcionando bien en esta versión.
fuente
Solo para mejorar la respuesta de tumbleweed, que tiene un enlace muerto para encontrar la antigua lista de algoritmos.
Primero decida sobre una lista de algoritmos. Para encontrar la lista anterior, use
ssh -vv
:Y busque las 2 líneas como "algoritmos de clave de host: ..." donde la primera parece ser la oferta del servidor y la segunda es la del cliente. O para seleccionar esas 2 líneas automáticamente, intente esto (y para salir presione ctrl + d):
Ahora filtre hacia abajo ... debe eliminar todos los dss / dsa, ya que son obsoletos desde hace mucho tiempo, y también desea eliminar ecdsa (como lo hago yo), por ejemplo, si tenía:
Deberías terminar con:
Ahora edite su configuración. Para su propia configuración:
Para la configuración de todo el sistema:
Agregue una nueva línea, ya sea globalmente:
o para un host específico (no es ideal para la configuración de todo el servidor):
En lugar de la lista que
ssh -vv
ingresé , pegue la lista que obtuvo del resultado, sin incluir la parte "algoritmos de clave de host:".fuente
algunos puntos son confusos en cuanto a si es posible eliminar los algoritmos clave de los valores predeterminados existentes: las claves de nivel más alto son las nuevas claves RSA-sha2 / 256/512 y ed25519 para la mejor seguridad utilizando ssh-keygen -t ras -a -b 4096 -a 113 a gen. Aparentemente, el soporte heredado está leyendo noticias ssh de que ssh1 habrá desaparecido por completo: también se eliminarán sus claves dsa de 45 bits y 96 bits máx. También depreciadas. Se corrigió en 128/1024 bit max encontrado pirateable. (Posiblemente, la NSA hizo eso y cojo / excusa, ya que el código de depuración dejaba una gran duda de que nombrarlo era insoportable), por lo que todas las estructuras clave de RSA seguras y de alto costo tienen que ser modificadas para soportar y mantener estándares más altos en el futuro. establezca qué teclas desea usar como se describe en / etc / ssh / sshd_config, intente hacer 2 teclas auth 3 tecla también funciona, es decir: sshd_config "AuthenticationMethods publickey, publickey, publickey" - asegúrese de que las listas ssh -Q kex coincidan con los servidores A y B o los escritorios, por ejemplo, pueden hacer una diferencia en su salida, y asegúrese de que coincidan los mismos algoritmos de exhng clave. Las claves ecdsa más nuevas en producción también son muy débiles y no se recomienda su uso. o get - keyexchange rechazó el acceso parcial al mensaje seguro. Un montón de buena información solo paciente para buscarlo.
fuente
O, si insiste en tener el enfoque de clave RSA, puede escribir
ssh-keygen -t rsa
en el servidor al que desea enviar SSH.Eso debería generar claves públicas y privadas de RSA en '~ / .ssh / id_rsa'. Ahora todo lo que necesita hacer es copiar la clave pública debajo
$HOME/.ssh/authorized_keys
de todas esas máquinas desde las cuales tiene la intención de enviar ssh a la máquina en la que generó sus claves RSA.¡Y luego siéntate y relájate!
fuente