Un servidor en particular con el que necesito interactuar tiene un sshd
antiguo o dañado, y solo admite algoritmos SHA1 para el intercambio de claves. De la información en los documentos de Snowden, desconfío de que las claves intercambiadas con servidores con algoritmos de intercambio de claves débiles puedan ser interceptadas.
Mantengo una identidad separada que uso solo con este servidor, y tengo una entrada específica ~/.ssh/config
para usar esa identidad al conectar; y mi ssh_config
a nivel de máquina no permite los algoritmos de intercambio de claves inseguros.
Sin embargo, si agregué mi clave regular a ssh-agent
, parece que mi clave con la esperanza de que sea más segura aún se enviará a través del intercambio de claves potencialmente inseguras.
¿Hay alguna forma de asegurar aún más mi configuración, de modo que pueda evitar que una clave que deseo mantener segura y privada se transmita con un algoritmo de intercambio de claves con fugas?
Si no, debería haber ? Parece que parte del contrato del agente es que "todos estos algoritmos de intercambio de claves son absolutamente seguros al 100%, por lo que está bien enviar cualquier clave". Dado que los algoritmos de intercambio de claves no son seguros, esto es (¿es?) Un problema.
Si bien los algoritmos de intercambio de claves se pueden bloquear en el nivel de la máquina, esto no siempre funciona en la práctica, y es bastante fácil anularlo accidentalmente / intencionalmente en la configuración por usuario. ¿Existe (o, de nuevo, debería haber) una manera de configurar "la identidad XYZ puede solo ser utilizada con KexAlgorithms / Ciphers / MACs?"
Detalles de Gory:
Tengo una identidad rsa id_insecure
que quiero usar con el servidor inseguro, y una identidad ed25519 id_secure
que uso por defecto.
Para evitar algunos algoritmos de intercambio de claves potencialmente débiles, mi /etc/ssh_config
contiene:
Host *
KexAlgorithms [email protected],diffie-hellman-group-exchange-sha256
Para permitir el acceso al servidor inseguro, ya que no pueden ponerse de acuerdo sobre un algoritmo de intercambio de claves con la configuración anterior, mi ~/.ssh/config
contiene:
Host insecure_server
IdentityFile path_to/id_insecure
KexAlgorithms diffie-helmann-group14-sha1,and-some-other-icky-sha1-algorithms
Sin embargo, si carga id_secure
en mi agente SSH y ssh -vvv insecure_server
, la salida contendrá
debug1: Offering ED25519 public key: path_to/id_secure
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: ...
Comprendo que acabo de enviar mi identidad id_secure
utilizando el algoritmo de intercambio de claves diffie-helmann-group14-sha1, que no es tan seguro como se pensaba. Si me equivoco sobre lo que se está transmitiendo ... también me parece que es información valiosa.