[exercice optionnel] Se connecter à un serveur avec une clé

L'objectif est :

  1. de générer une paire de clé (publique et privée)

  2. puis de transférer la clé publique au serveur

  3. et de se connecter en utilisant l'authentification par clé

Question

Questions préliminaires :

  • pourquoi transfère-t-on la clé publique ?

  • pourquoi ne transfère-t-on pas la clé privée ?

Indice

La clé publique sert à chiffrer les donner et la clé privée sert à déchiffrer les données.

Indice

Comprendre le chiffrement par clé : Gépégix [pdf][1]

Solution

  • On communique notre clé publique au serveur afin que le serveur chiffre les données qu'il va nous envoyer avec notre clé publique. Les données seront déchiffrables uniquement grâce à la clé privée allant de paire avec la clé publique.

  • Si la clé privée est communiquée sur le réseau ou stockée sur le serveur elle risque d'être récupérée. Les données envoyées par le serveur pourront donc être déchiffrées par des tiers. Il est donc primordial de ne jamais communiquer sa clé privée. Elle ne sert qu'à déchiffrer les données que l'on vous envoie (chiffrées avec votre clé publique).

Pour générer une paire de clé il suffit de taper la commande suivante :

1
ssh-keygen

Il vous sera demandé une passphrase (mot de passe) qui chiffrera la clé sur votre machine. Ce n'est pas obligatoire mais il s'agit d'une sécurité supplémentaire au cas où quelqu'un d'autre que vous utiliserait votre machine.

Votre paire de clé sera enregistrée dans le dossier caché[2] .ssh accessible depuis votre home.

Question

Utilisez le terminal pour vous rendre dans le répertoire ssh de votre machine et affichez la paire de clés qui s'y trouve.

Solution

Il vous faut taper la commande suivante :

1
#commandes 
2
ls ~/.ssh
1
#résultat
2
id_rsa  id_rsa.pub  known_hosts

id_rsa est votre clé privée, id_rsa.pub votre clé publique et known_hosts contient la listes serveurs auquel vous vous êtes déjà connecté.

Question

En utilisant la commande cat ~/.ssh/id_rsa.pubaffichez le contenu de votre clé publique.

Solution

1
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDU6aCD3LJM7KtMPT3xyn8vpuT3X8JrCWCnhD3jaTRRQmN4ZH8ofmqRh3/Czcp9ofhU50mIjmhmwx46bxr+sZI1TmY1EDsx0fClS7zUp1H1vE2zCKz4gRcKdbYFVtakj/3qQE4oKnnNeDTQm9wTlHuT3TE/SyvsI+0xA8VtgeX3lNeqODgyMhOTpoM5hnGlGF4CXIY9HvArl6wwMu/Ii4V5CgMSH/ldCDdRE8/SHOIHZ6IVpJeYjmsBaGYbrphNxNXVuaq9qEtV4o8YXHl8G701OCxIUi1QV0eEQCTCC2AA+Hf88mJCQh5zQ8tthbiO/cnbNrjvXyTZlQAIyvpyGaI/ stc@hal9017
2

Question

L'objectif est à présent de transférez votre clé publique SSH sur votre serveur afin de s'y connecter sans mot de passe.

On suppose ici le user concerné est admin.

Configurer l'accès SSH :

  • se connecter en tant que admin : su admin

  • créer le dossier caché /home/admin/.ssh

  • créer le fichier .ssh/authorized_keys

  • copier la clé publique dans le fichier .ssh/authorized_keys

  • ajuster les droits :

    • 700 pour le dossier .ssh

    • 644 pour la clé publique et le fichier authorized_keys

Indice

Vous pouvez désormais vous connecter sans mot de passe. La passphrase de votre clé vous sera demandée à la place.

Question

NB : le dossier .ssh et le fichier authorized_keys doivent appartenir à jack (si ce n'est pas le cas on utilise chown)