Où l’empreinte digitale du serveur SSH est-elle générée / stockée?

J’ai installé openssh-server et créé une clé avec ssh-keygen . J’ai ensuite essayé de le tester à l’aide de la redirection de port local en utilisant ssh -L 8080:www.nytimes.com:80 127.0.0.1 . Cependant, l’empreinte digitale de clé fournie par cette commande n’est pas l’empreinte digitale que j’ai lorsque je fais ssh-keygen -l . Même si je supprime mon répertoire .ssh, j’obtiens toujours la même empreinte digitale, qui n’est pas celle que j’ai créée avec ssh-keygen . Y a-t-il une autre clé sur mon système? Où est cette clé? Comment puis-je sélectionner cette clé pour une utilisation par openssh-server?

Lorsque vous créez une session SSH, deux paires de clés différentes (avec une empreinte digitale pour chaque paire) sont impliquées. L’un est la clé de l’utilisateur qui est stockée dans ~/.ssh . L’identité de la clé SSH de l’utilisateur est parfois utilisée comme identifiant pour se connecter à un autre ordinateur (si vous avez configuré une connexion par clé).

L’autre est la clé du serveur SSH. C’est la clé pour laquelle vous voyez l’empreinte digitale lorsque vous vous connectez à un autre serveur pour la première fois. L’identité de cette clé est utilisée pour vous assurer que vous vous connectez au serveur SSH que vous souhaitez. Ceci est important si vous utilisez des mots de passe car vous ne voudriez pas tenter accidentellement de vous connecter à un ordinateur attaquant: l’attaquant obtiendrait votre mot de passe lorsque vous le saisiriez. Il pourrait ensuite se connecter à la machine sur laquelle vous pensiez vous connecter. à! (Ceci est connu comme une “attaque au milieu” ) Les clés utilisées par un serveur SSH pour s’identifier lorsque vous vous y connectez se trouvent dans /etc/ssh/ et ssh_host_rsa_key généralement le nom ssh_host_rsa_key .

Vous pouvez réellement modifier l’emplacement de recherche de la clé par le serveur SSH dans le fichier /etc/ssh/ssh d _config avec le HostKey /path/to/host/key .

Par défaut, ssh-keygen créera une clé pour l’utilisateur actuel, qui, par défaut, sera stockée dans ~/.ssh . Le format d’une clé d’utilisateur et d’une clé de serveur est identique. la différence est l’endroit où ils sont placés et si /etc/ssh/sshd_config a une directive HostKey pointant vers eux. Lorsque vous installez le paquet openssh-server, il génère automatiquement des clés à utiliser par le serveur. C’est de là que viennent les clés à empreinte inconnue. Si vous voulez voir l’empreinte digitale de la clé (RSA *) du serveur SSH, vous pouvez exécuter ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub .

* Il existe différents algorithmes de cryptage. Chacun utilise une clé différente. Les plus courantes sont DSA (faible), RSA (ancien paramètre par défaut) et ECDSA (nouveau paramètre par défaut).

Les clés d’hôte SSH sont stockées dans /etc/ssh/ , ce que vous n’avez généralement pas besoin de choisir. Ces clés ont été générées lors de l’installation du paquet openssh-server.

Vous pouvez répertorier les empreintes digitales des clés à l’aide de ssh-keygen -l -f /etc/ssh/ssh_host_key.pub mais vous devrez répéter cette opération pour chaque clé publique.

ssh-keygen ne génère pas l’empreinte SSH sur votre serveur. Cela est généré par le serveur SSH. ssh-keygen crée une paire de clés publique / privée pour votre système, que vous pourrez utiliser par la suite pour accéder à votre serveur SSH sans avoir à transmettre un code secret au serveur.

Les empreintes digitales de votre serveur ne s’afficheront évidemment pas comme l’empreinte digitale de la paire de clés publique / privée que vous avez générée, car elles sont séparées les unes des autres.