Bases de Linux et de la ligne de commande

On a créé avec ssh-keygen, sur son propre PC, une paire de clés pour l'authentification par clé publique, et on veut se connecter au serveur server1 avec ssh sans mot de passe. Quelle est la bonne façon de placer les clés ?

  1. AAjouter la clé privée au fichier ~/.ssh/authorized_keys du serveur, et garder la clé publique uniquement sur son PC
  2. BPlacer la clé publique et la clé privée dans le répertoire ~/.ssh du serveur, et ne rien laisser sur son PC
  3. CAjouter la clé publique au fichier ~/.ssh/authorized_keys du serveur, et ne jamais laisser la clé privée quitter son PC
Afficher la réponse et l'explication

Réponse : C. Ajouter la clé publique au fichier ~/.ssh/authorized_keys du serveur, et ne jamais laisser la clé privée quitter son PC

Dans l'authentification par clé publique de SSH, le serveur utilise la clé publique enregistrée dans authorized_keys pour vérifier que le côté qui se connecte possède la clé privée correspondante. La clé privée elle-même n'est jamais envoyée : on la garde donc uniquement sur son propre PC, avec des droits comme 600 pour que personne d'autre ne puisse la lire, et protégée par une phrase de passe. La clé publique (un fichier .pub, comme ~/.ssh/id_ed25519.pub) peut être connue sans danger, et ssh-copy-id l'ajoute au fichier authorized_keys du serveur. La même clé sert aussi pour transférer des fichiers avec scp ou rsync, qui fonctionnent par-dessus ssh.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de Linux et de la ligne de commande

  1. Que se passe-t-il quand on exécute « tar -czf proj.tar.gz proj/ » ?
  2. Après avoir modifié main.c, un fichier géré avec Git, on a seulement exécuté « git commit -m "fix" » : « no changes added to commit » s'est affiché et rien n'a été validé. Quelle en est la raison ?
  3. On a exécuté git commit dans Git, mais le commit n'apparaît pas encore dans le dépôt GitHub partagé par l'équipe. Quelle en est la raison ?
  4. Dans un projet géré avec Git, on a écrit « build/ » dans le fichier .gitignore, mais les modifications de build/out.log, qui avait été validé auparavant, continuent d'apparaître dans git status. Quelle en est la raison ?
  5. Quelle association entre des répertoires standard de Linux et ce que l'on y place est correcte ?