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

34

J'ai installé openssh-server et créé une clé avec ssh-keygen . J'ai ensuite essayé de le tester en utilisant le transfert de port local en effectuant ssh -L 8080:www.nytimes.com:80 127.0.0.1 . Cependant, l'empreinte de clé fournie par cette commande n'est pas l'empreinte clé que j'obtiens lorsque je fais ssh-keygen -l . Même si je supprime mon répertoire .ssh, j'obtiens toujours la même empreinte, 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 sélectionner cette clé pour openssh-server?

    
posée bsamek 07.11.2011 - 02:42
la source

3 réponses

51

Lorsque vous effectuez une session SSH, deux paires de clés différentes (avec une empreinte digitale pour chaque paire) sont impliquées. L'une 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é la connexion par clé).

L'autre est la clé du serveur SSH. C'est la clé que 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 avez l'intention de. Ceci est important si vous utilisez des mots de passe car vous ne voudriez pas tenter accidentellement de vous connecter à une machine attaquante: l'attaquant obtiendrait votre mot de passe lorsque vous l'avez saisi. L'attaquant pourrait alors se connecter à la machine que vous pensiez à! (ce que l'on appelle un "homme en attaque" ) Les clés a Le serveur SSH s'identifie lorsque vous vous connectez à /etc/ssh/ et qu'il s'appelle généralement ssh_host_rsa_key .

Vous pouvez réellement modifier l’emplacement où le serveur SSH recherche la clé dans le fichier /etc/ssh/sshd_config avec le paramètre HostKey /path/to/host/key .

Par défaut, ssh-keygen créera une clé pour l'utilisateur actuel, qui sera par défaut stockée dans ~/.ssh . Le format d'une clé d'utilisateur et d'une clé de serveur est le même. 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 package openssh-server, il génère automatiquement des clés à utiliser par le serveur. C'est de là que proviennent les clés contenant l'empreinte inconnue. Si vous souhaitez voir l'empreinte de la clé du serveur SSH (RSA *), 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 courants sont DSA (faible), RSA (ancien défaut) et ECDSA (nouveau défaut).

    
réponse donnée Azendale 07.11.2011 - 04:42
la source
14

Les clés d'hôte SSH sont stockées dans /etc/ssh/ , 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 package openssh-server.

Vous pouvez répertorier les empreintes digitales des clés avec ssh-keygen -l -f /etc/ssh/ssh_host_key.pub , bien que vous deviez répéter cette opération pour chaque clé publique.

    
réponse donnée ajmitch 07.11.2011 - 03:17
la source
7

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 pouvez utiliser ultérieurement pour accéder à votre serveur SSH sans avoir à transmettre un code d'accès en texte brut au serveur.

L’empreinte de votre serveur ne sera évidemment pas affichée comme l’empreinte de la paire de clés publique / privée que vous avez générée, car elles sont distinctes les unes des autres.

    
réponse donnée Thomas Ward 07.11.2011 - 02:48
la source

Lire d'autres questions sur les étiquettes