Pour utiliser notre paire de clés SSH, nous devons copier la clé publique sur la machine distante. Dans ce tutoriel, nous allons observer plusieurs façons de le faire. Les exemples présentés ici supposent que nous avons utilisé ssh-keygen avec les paramètres par défaut pour créer notre paire de clés SSH. Tous les exemples ont été testés dans Bash et devraient également fonctionner dans d’autres shells compatibles POSIX.
Sur notre machine
Sur nos machines locales, notre paire de clés SSH est située dans notre répertoire personnel, dans un sous-répertoire appelé .ssh :
drwx—— 5 vagrant vagrant 160 Apr 23 13:11 .ssh
Le répertoire .ssh n’est accessible que par notre propre utilisateur et contient la paire de clés réelle dans deux fichiers :
$ ls -l .ssh
total 16
-rw——- 1 vagrant vagrant 1843 Mar 27 15:09 id_rsa
-rw-r–r– 1 vagrant vagrant 413 Mar 27 15:10 id_rsa.pub
Le fichier appelé id_rsa contient notre clé privée, et notre clé publique est stockée dans id_rsa.pub. Nous devons copier la clé publique sur l’autre machine afin d’utiliser cette paire de clés pour nous connecter.
Copie manuelle
Tout d’abord, nous allons adopter l’approche manuelle. Copions la clé publique sur l’autre machine à l’aide de la commande scp. Depuis notre répertoire personnel, nous exécutons la commande
freestar
$ scp .ssh/id_rsa.pub notre_nom_d’utilisateur@autre_machine :
Nous devons taper notre mot de passe pour la machine distante, et le fichier est transféré. Ensuite, nous nous connectons à l’autre machine en utilisant également notre nom d’utilisateur et notre mot de passe pour placer le fichier au bon endroit. Tout d’abord, nous devons nous assurer que notre répertoire personnel sur l’autre machine contient également un répertoire appelé .ssh avec les mêmes droits d’accès que celui sur notre propre machine :
$ mkdir .ssh
$ chmod 700 .ssh
Ce répertoire doit contenir un fichier appelé authorized_keys qui n’est accessible qu’à notre propre utilisateur :
$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keys
Le fichier doit contenir toutes les clés publiques des paires de clés avec lesquelles nous voulons permettre à notre utilisateur de se connecter. Ajoutons la clé publique que nous avons transférée à ce fichier :
$ cat id_rsa.pub >> .ssh/authorized_keys
À partir de maintenant, chaque fois que nous nous connectons à cette autre machine, notre paire de clés est utilisée, et nous n’avons plus besoin d’entrer notre mot de passe.
Utilisation de ssh-copy-id
L’approche manuelle nécessite un certain nombre d’étapes. Heureusement, Linux est livré avec un script pratique qui fait tout le travail à notre place. Ce script s’appelle ssh-copy-id. Nous exécutons simplement la commande suivante :
freestar
$ ssh-copy-id notre_nom_d’utilisateur@autre_machine
Cela va prendre notre clé publique depuis son emplacement par défaut et la transférer sur l’autre machine, en effectuant toutes les mêmes étapes que nous avons effectuées manuellement ci-dessus.
Conclusion
Dans cet article, nous avons appris à copier nos clés SSH vers d’autres machines. Lorsque nous effectuons une copie manuelle, nous devons nous assurer que toutes les autorisations de fichiers sont aussi restrictives que possible. La façon la plus simple de copier des clés SSH est d’utiliser le script ssh-copy-id.