technique:tech_team:ssh

No renderer 'odt' found for mode 'odt'

Qui dit équipe technique dit administration des services… sur les machines de Picasoft. Puisqu’elles sont à Toulouse ou à la DSI de l'UTC, il faut un moyen d’y accéder à distance pour administrer les services. Ce moyen, c’est SSH !

A Savoir:

Le programme SSH (Secure Shell) permet d’interagir de manière sécurisée avec un ordinateur distant via un shell. C’est le programme de référence pour effectuer des opérations à distance. Toutes les commandes tapées depuis un clavier d’ordinateur à un emplacement A sont exécutées dans le shell d’un ordinateur à un emplacement B. Les informations qui transitent sur Internet via SSH sont les chaînes de caractères représentant les commandes à exécuter et les chaînes de caractères représentant les résultats de ces exécutions. Source

Concrètement, SSH te permet de taper des commandes sur ton PC qui seront exécutée par un PC distant, comme si tu avais accès au clavier du PC à distance.

Question:

Pourquoi c’est sécurisé ?

Parce que l’ensemble des communications entre ta machine et la machine Picasoft est chiffré, c’est-à-dire que quelqu’un qui intercepterait la communication ne pourrait rien comprendre.

Aussi, SSH permet de se connecter à distance avec une manière plus sophistiquée qu’un mot de passe.

Question:

Ça suffit pas un mot de passe ?

Un mot de passe, ça peut se deviner en faisant beaucoup d’essai, ça peut fuiter, si on utilise le même mot de passe à plusieurs endroits, etc. À la place, on préfère utiliser un système de clés. L’idée, c’est que tu vas générer une paire de clés : l’une est dite publique, et l’autre privée.

Elles ont des propriétés intéressantes : tout ce qui est chiffré avec la clé publique ne peut être déchiffré qu’avec la clé privée, et inversement.

Imagine que tu as généré ta paire de clé : tu nous envoies la clé publique et tu gardes précieusement ta clé privée. Nous, on indique aux machines que ta clé publique est autorisée à se connecter aux machines. Quand tu essayes de te connecter, la machine chiffre un message avec ta clé et te l’envoie. Si tu arrives à le déchiffrer, c’est que tu es en possession de la clé privée, il n’y a aucun autre moyen. Et donc, ça prouve que c’est toi! Par la suite, ces clés permettent de chiffrer les communications.

La procédure est assez différente si tu es sur Windows ou sur Linux.

Attention:

Il est préférable d’utiliser un mot de passe pour sécuriser la clé privée pour éviter qu’elle soit « en clair » sur le disque. Lors de la création, on te propose de choisir un mot de passe ou « passphrase ».

Si tu as une version Linux grand public, tout est déjà installé, et il suffit de lancer la commande suivante dans un terminal, qui génère une clé de 4096 bits. Plus la clé est longue, plus la sécurité est haute, et c’est aujourd’hui la taille recommandée.

ssh-keygen -b 4096

Une fois la commande terminée :

  • La clé privée protégée par mot de passe se situe dans ~/.ssh/id_rsa.
  • La clé publique à partager se trouve ~/.ssh/id_rsa.pub.

Note:

~ désigne ton dossier personnel.

Il faut installer PuTTY. Une fois que c’est installé, ouvre le programme PuTTYgen.

Configure le nombre de bits sur 4096, vérifie que RSA est bien coché et clique sur « Générer ». Bouge ta souris pour générer la clé, puis une fois que c’est fini, enregistre la clé publique et la clé privée dans un dossier de ton choix.

Ensuite, ouvre PuTTY et rends toi dans Connections → SSH → Auth.

Puis clique sur « Browse » ou « Parcourir » et sélectionne la clé privée que tu as sauvegardée à l’étape précédente.

Les accès aux machines de Picasoft se font grâce à un annuaire LDAP.

A Savoir:

On peut se représenter un annuaire LDAP comme un vrai annuaire, qui répertorie les personnes autorisées à accéder à l’infrastructure, leur clé SSH, le niveau d’accès, etc.

Question:

Pourquoi on crée pas tout simplement un utilisateur sur les machines qui est autorisé à se connecter ?

Parce qu’il faudrait répéter l’opération sur chaque machine ! Avec LDAP, on rentre les informations une seule fois, et les machines contactent le serveur LDAP pour savoir si tu as le droit de te connecter. D’ailleurs, avec ce compte, tu pourras te connecter partout : sur toutes les machines, mais aussi sur le wiki, le Cloud, les statistiques

Pour le créer, il suffit de demander à un·e membre de l’équipe technique, sur Mattermost, en lui envoyant :

  • Ton login (le login UTC fait l’affaire, c’est facile à retenir, mais tu peux t’appeler licorne si tu veux)
  • Ta clé SSH publique (que tu as crée à l’étape précédente, et qui se termine par .pub)

Une fois que tout est en place, on te transmettra un mot de passe temporaire. Tu vas pouvoir le changer, et en même temps vérifier que tout fonctionne !

On va se connecter sur la machine de test, accessible à l’URL pica01-test.picasoft.net.

Dans un terminal, tu peux taper la commande suivante, en remplaçant <login> par le nom de ton compte. Connecte toi sur la machine de test :

ssh <login>@pica01-test.picasoft.net

Dans PuTTY, rentre l’adresse du serveur auquel tu veux te connecter, par exemple la machine de test :

Et clique sur Open. Un terminal s’ouvrira et te demandera l’utilisateur distant avec lequel tu souhaites te connecter (le nom de ton compte), puis le mot de passe de ta clé privée.

Normalement, on te demande d’entrer le mot de passe de ta clé SSH (pas de ton compte), et tu arrives sur la machine ! Toutes les commandes que tu tapes sont exécutées directement sur la machine de test.

Une fois que tu es connecté·e, tu peux changer ton mot de passe :

passwd

Et pour te déconnecter :

exit

Question:

Ok, et maintenant on fait quoi sur les machines ?

On peut commencer à faire un peu de Docker, puisque c’est ce qu’on utilise pour lancer tous nos services, y compris ceux qui ne sont pas visibles au public. :-D

  • technique/tech_team/ssh.txt
  • de qduchemi