SSHFP pour authentifier votre SSH

SSHFP pour authentifier votre SSH

SSHFP est un type d'enregistrement DNS destiné à contenir les empreintes des clés publiques d'un serveur SSH. Couplé à un enregistrement DNSSEC du nom de domaine, il fournit une grande sécurité.

Note:

Il vous faut quand même un enregistrement A qui pointe vers l'adresse IP du serveur SSH.
Attention, avec un CNAME ça ne marche pas ! (en tout cas chez FreeDNS).

En activant sur le client et le serveur l'option, votre client vérifiera que les clés du serveur correspondent à celles de l'enregistrement DNS, utile quand on se connecte depuis un nouveau poste.

Mise en place du serveur

Sur votre serveur, exécutez ssh-keygen -r votre.domaine.tld

ssh.ribes.me IN SSHFP 1 1 5f6123b6a5716507d43cf361287db36b8390f2f0
ssh.ribes.me IN SSHFP 1 2 c8f560563f6676f138ef0e0f8848b41764b8c6708b6afc6fc8249422b5463771

Placez ensuite les enregistrements DNS produits dans votre serveur DNS. Si vous utilisez les services de FreeDNS, créez un domaine par enregistrement, tous avec le même nom de domaine, et mettez comme destination ce qui suit *SSHFP

Exemple :

ssh.ribes.me 3600 IN A 1.2.3.4
ssh.ribes.me 3600 IN SSHFP 1 1 5f6123b6a5716507d43cf361287db36b8390f2f0
ssh.ribes.me 3600 IN SSHFP 1 2 c8f560563f6676f138ef0e0f8848b41764b8c6708b6afc6fc8249422b5463771

Mise en place du client

Pour des test, utilisez ssh comme ceci:

ssh -o "VerifyHostKeyDNS yes" votre.domaine.tld -v

Si tout marche bien, vous pouvez rajouter cette ligne dans /etc/ssh/ssh_config :

VerifyHostKeyDNS yes

https://unix.stackexchange.com/questions/121880/how-do-i-generate-sshfp-records