1 votes

Quand exactement SSH-agent utilise-t-il ma private_key pour se connecter à un serveur distant ?

J'ai besoin de quelques notions de base sur SSH, pour m'aider à comprendre le processus de connexion SSH.

J'ai un serveur Ubuntu sur ma machine virtuelle et un bureau Ubuntu sur mon hôte. J'ai établi une connexion avec ma machine virtuelle en ajoutant id_rsa.pub à authorized_keys sur la machine distante (ajouté par ssh-copy-id). id_rsa.pub est généré par ssh-keygen ainsi que id_rsa.

Je parviens à me connecter à distance sans saisir de mot de passe, mais je ne comprends pas quand et pourquoi j'ai besoin du fichier id_rsa qui est stocké avec id_rsa.pub ?

J'ai essayé de supprimer cette clé privée, mais malgré cela la connexion fonctionne toujours ! À mon avis, ce fichier n'est pas nécessaire pour établir une connexion avec ma machine virtuelle.

3voto

Rmano Points 30303

Pour "explorer" le fonctionnement de ssh, vous pouvez utiliser les drapeaux verbose. Par exemple,

ssh -v ...

donnera des informations sur la poignée de main. Vous pouvez utiliser plusieurs v, avec un maximum de trois, pour avoir encore plus d'informations de débogage :

ssh -vvv ...

Néanmoins, le lien de la page wikipedia posté par @darent vaut la peine d'être lu pour comprendre le chiffrement à clé asymétrique. Beaucoup de liens utiles sur les détails peuvent être trouvés dans cette question sur SuperUser.

3voto

user68186 Points 25067

Laissez-moi essayer d'expliquer cela avec un exemple. Supposons que je vous fais confiance et que je veuille que vous vous connectiez en SSH à mon ordinateur pour faire quelque chose. Je peux vous donner mon mot de passe ou vous pouvez me donner votre clé publique.

Si vous me donnez votre clé publique, lorsque vous essayez de vous connecter à mon ordinateur, votre client SSH utilisera votre clé privée pour générer la demande d'authentification chiffrée à votre extrémité et l'envoyer à mon ordinateur. Mon ordinateur utilisera votre clé publique pour déchiffrer la demande d'authentification chiffrée et ainsi authentifier que c'est bien vous et non quelqu'un d'autre qui tente de s'introduire dans mon ordinateur.

Remarque : La paire de clés privée-publique n'est pas utilisée pour crypter la transmission entre deux ordinateurs. Une fois que la connexion est établie, les clés ne sont plus nécessaires jusqu'à ce que la connexion soit terminée et qu'une nouvelle connexion soit tentée. SSH dispose de son propre système interne de chiffrement des données qui ne dépend pas de la paire de clés privée-publique.

Ainsi, en acceptant votre clé publique, je vous ai donné ma confiance pour entrer dans mon ordinateur. Si jamais vous trahissez ma confiance, je supprimerai votre clé publique de mon ordinateur. Ensuite, vous ne pourrez plus vous connecter en SSH à mon ordinateur.

Si vous donnez votre clé privée à quelqu'un d'autre (ou si quelqu'un la vole), cette personne pourra se faire passer pour vous. Si je découvre que vous avez donné votre clé privée à quelqu'un d'autre, je supprimerai votre clé publique de mon ordinateur. Alors ni vous ni l'autre personne ne pourrez vous connecter en SSH à mon ordinateur.

La clé publique que vous m'avez donnée est inutile si j'essaie de me connecter en SSH à votre ordinateur, car elle ne sert qu'à déchiffrer les informations que vous générez avec votre clé privée. Si vous souhaitez que je me connecte en SSH à votre ordinateur, vous devrez placer ma clé publique à l'endroit adéquat dans votre ordinateur.

Ubuntu stocke vos clés privées dans un logiciel de gestion des mots de passe appelé Password and Encryption Keys :

entrer la description de l'image ici

Remarquez l'onglet du milieu Mes Clés Personnelles. Cela protège votre clé privée contre le vol (et contre la suppression accidentelle de votre clé privée).

Voici plus d'informations sur le gestionnaire de mots de passe Seahorse.

J'espère que cela vous aide

1voto

Jerron Points 258

Vous n'êtes pas censé "utiliser" manuellement votre clé privée. La cryptographie publique/privée repose sur l'utilisation de deux clés, l'une qui devient publique et l'autre qui reste dans votre ordinateur, la clé privée.

Chaque fois que quelqu'un doit vous envoyer un message chiffré, ou que vous devez utiliser une authentification, comme le fait SSH, il utilisera la clé publique pour chiffrer les données. Une fois que vous recevez les données, la seule clé qui peut les déchiffrer est la clé privée.

Imaginez que vous avez deux clés : Tout ce qui est verrouillé avec une clé, ne peut être déverrouillé qu'avec l'autre. Donc ne supprimez pas votre clé privée car cela rendrait la clé publique inutile.

Si vous voulez en savoir plus, vous pouvez consulter ce lien vers Wikipedia, il contient une bonne explication sur le chiffrement à clé asymétrique.

0voto

VTC Points 78

Pensez-vous que vous avez supprimé la clé privée sur le serveur ? Si c'est le cas, elle n'est utilisée que lors de la connexion en SSH DEPUIS ce serveur. Cela n'aurait aucun impact sur la connexion en SSH VERS ce serveur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X