33. Le shell sécurisé : ssh

Ssh est un incontournable de la gestion sécurisée des machines. L’idée est simple : depuis un ordinateur, se connecter en ligne de commande sur un autre.

Utilisation

Après installation de ssh sur les deux ordinateurs, l’utilisation est simple :

ssh pi@ipordinateurdistant

où, « pi » est le nom de l’utilisateur sous lequel on veut se connecter et « ipordinateurdistant » l’adresse ip de l’ordinateur distant sur lequel on veut se connecter.

Suivant les cas, si vous avez autorisé une connexion avec un mot de passe, un mot de passe vous sera demandé, ou, si vous n’autorisez qu’une connexion par clé, une phrase de passe vous sera demandée.

Création des clés

Pour créer des clés privée et publique utilisables par ssh, il faut simplement lancer la commande :

ssh-keygen -t rsa

Ainsi, vous créerez une paire de clé publique-privée de type rsa, communément utilisé. Vous seront demandé le répertoire dans lequel les clés seront stockées et votre phrase de passe deux fois. Pour le répertoire de stockage, vous pouvez laisser le répertoire par défaut : « .ssh ». Quand cela est fini, vous retrouverez vos clés dans ce répertoire sous les noms « id_rsa » pour la clé privée et « id_rsa.pub » pour la clé publique. Id_rsa étant votre clé privée, elle ne doit jamais être communiquée à qui que ce soit.

Transfert de la clé publique

Pour la clé publique, il faut maintenant la transférer sur les ordinateurs sur lesquels vous voulez vous connecter. Pour cela, il vous faut un compte utilisateur valide sur l’ordinateur distant. Admettons que votre compte sur celui-ci se nomme « pi ». Le transfert de votre clé publique sur ce compte se fait de la manière suivante :

ssh-copy-id pi@ipordinateurdistant

Un avertissement vous sera alors donné vous demandant de confirmer que vous voulez réellement vous connecter sur cet ordinateur. Répondez par « yes ». Le mot de passe du compte pi vous sera alors demandé et après l’avoir validé, vous serez informé que votre clé publique a été ajoutée au trousseau de ce compte.

Vous pourrez alors utiliser ssh comme mentionné plus haut pour vous connecter à l’aide de votre phrase de passe.

Configuration

Alors depuis l’ordinateur sur lequel vous avez créé les clés vous pourrez vous connecter avec votre phrase de passe, parfaitement sécurisée. Mais avec un autre ordinateur, il est possible que vous puissiez vous connecter avec un mot de passe. Si c’est le cas, toute personne pourra tenter de se connecter en ssh à votre compte pi. Pour s’y connecter, il lui suffira de trouver votre mot de passe. Si ce n’est pas le cas, l’accès lui sera simplement refusé. L’ordinateur distant ne va donc alors accepter une connexion que si il sait que c’est vous. Pour cela, il a créé, lors de la transmission de votre clé publique un fichier des hôtes connus baptisé « known_host » et un autre fichier des clés authorisées « authorised_keys ». Ainsi, il est préférable, après avoir déposé sa clé publique, d’interdire les connexions par mot de passe. Cela se fait dans le fichier de l’ordinateur distant :

/etc/ssh/sshd_config

Vous trouverez dans ce fichier la ligne suivante :

#PasswordAuthentication yes

En mode root ou avec sudo, décommentez-la est mettez sa variable à no :

PasswordAuthentication no

Enregistrez et redémarrez ssh par :

systemctl restart ssh

Désormais l’ordinateur distant ne sera plus accessible qu’à travers une phrase de passe. Attention, cela pourrait signifier que certains utilisateurs sans clés qui se connectaient avec un mot de passe pourraient ne plus pouvoir utiliser ssh.

Dérogation de droits

SI vous voulez accorder à certains utilisateurs la possibilité de se connecter par mot de passe, alors que par défaut c’est l’authentification par phrase de passe qui doit être imposée, cela est faisable en ajoutant à la fin du fichier « sshd_config » :

Match user autreuser
    PasswordAuthentication yes

où « autreuser » est un utilisateur autorisé à utiliser une authentification par mot de passe. Attention, tout ce qui vient après la ligne « Match user autreuser » concernera l’utilisateur « autreuser ». On peut ainsi ajouter d’autres directives pour cet utilisateur spécifique en dessous de « Password… ».

Laisser un commentaire