Aller au contenu
Couillaman le site une demo bientot ! ×

Convertir ses clés SSH de PuTTY pour Linux


dokuro
 Share

Messages recommandés

Quand vous utilisez PuTTY sous Windows, les fichiers de clés privées utilisées sont au format ppk (qui doit vouloir dire PuTTY Private Key), qui n’est utilisable que par lui (enfin, pas que). Fort heureusement, il n’y a pas besoin de recréer un jeu de clé quand vous changez d’environnement et surtout de logiciel. Pour ce faire, c’est le petit utilitaire PuTTYgen qui va nous servir.

PuTTYgen, générateur et convertisseur de clés depuis 1999

Ce petit programme devrait déjà être installé, puisqu’il devrait vous avoir servi pour créer votre accès. Si on vous a juste fourni la clé et que PuTTYgen n’est pas présent sur votre machine, vous pouvez le récupérer sur le site du développeur du programme.

 

ssh-interface-300x290.jpg

 

Il faut cliquer sur le bouton “Load” entouré sur la capture ci-dessus, et sélectionner votre fichier .ppk préféré. Le résultat devrait ressembler à ça :

 

ssh-loaded-300x290.jpg

 

Ensuite, il faut cliquer sur “Conversions” dans le menu, et sur “Export OpenSSH key”, puis choisir un nom de fichier, n’importe lequel. Il faudra ensuite le poser dans un dossier utilisable sous Linux.

 

UPDATE : Sur le blog Sam et Max, Sam nous apprend que PuTTY existe aussi sous Linux. Deux possibilités : soit vous l’utilisez, mais c’est pas super intégré à votre environnement de bureau, soit vous utilisez leur méthode pour installer puttygen et convertir la clé si vous n’avez pas de Windows sous la main. La méthode est donnée pour Ubuntu, mais sous Manjaro/Arch, il est inclus dans le paquet putty. Un simple pacman -S putty suffira à l’installer. Les commandes seront ensuite les mêmes.

Le client OpenSSH, la vraie geekerie commence

Bien, nous voilà sous Linux, notre fichier se trouve dans notre dossier utilisateur (techniquement vous pouvez le ranger où vous voulez), et nous cherchons à accéder à notre machine distante.

 

 
 
 
 
Shell
 
ls -l

total 12
drwxr-xr-x 2 root root 4096  1 déc.  10:27 fbx
-rw-r--r-- 1 root root 1922  2 janv. 09:47 linksys.py
-rw------- 1 root root  883  7 avril  2013 viedugeek.ssh
root@viedugeekFS:~#

 

Remarquez bien les droits d’accès sur le fichier (viedugeek.ssh ici). Le fichier ne doit pouvoir être lisible que par son propriétaire, sinon ssh refusera de l’utiliser, car trop sensible. Pour ça, un simple chmod 0600 viedugeek.ssh suffit. Sinon, pour accéder à votre machine, une seule ligne de commande suffit, et vous vous retrouvez sur votre serveur distant :

 

 
 
 
Shell
 
 
ssh viedugeek@distant.server -i /root/viedugeek.ssh

The authenticity of host 'distant.server (1.2.3.4)' can't be established.
RSA key fingerprint is e5:2c:f5:fe:18:bb:b0:2c:56:ee:16:51:ca:3f:b6:a5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'distant.server' (RSA) to the list of known hosts.
Linux heberg 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64


The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.


Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Jan  3 16:25:00 2014 from 5.6.7.8
viedugeek@heberg:~$

 

Le prompt (viedugeek@heberg ici) doit vous renseigner du succès de la connexion.

Options supplémentaires et automatisation

C’est la version la plus simple. Je vais vous présenter une version un peu plus complète, qui permet plusieurs choses :

 

 
 
Shell
 
 
ssh viedugeek@distant.server -i /root/viedugeek.sh -p 22 -D 9999

 

Décortiquons cette commande relativement simple (si, si, vous allez voir) :

  • ssh est évidemment le nom du programme
  • viedugeek@distant.server désigne l’utilisateur et l’adresse du serveur
  • -i /root/viedugeek.sh permet de sélectionner l’identité, la clé privée donc
  • -p 22 désigne le port sur lequel se connecter; souvent, par “sécurité”, le port par défaut du serveur SSH est changé pour éviter des attaques simples dessus, il faut donc le spécifier à la commande
  • -D 9999 permet de créer un tunnel et assigne un port local par lequel vous pouvez faire passer des applications par ce tunnel; pratique pour passer un proxy dans une entreprise où les VPN sont proscrits

C’est bien, c’est mieux, mais ça fait toujours très long à taper tous ces caractères. Deux solutions s’offrent à vous : créer un script shell dans /usr/bin, ou bien créer un alias plus court dans le fichier ~/.bashrc, qui charge les paramètres lors de la connexion. Je préfère cette solution, qui ne nécessite pas l’accès à root sur la machine pour créer le script.

On va la jouer court, comme d’habitude, et une seule commande va nous servir à ajouter l’alias au fichier :

 

 
 
 
 
Shell
 
 
echo "alias hbconnect='ssh viedugeek@distant.server -i /root/viedugeek.ssh -p 22 -D 9999'" >>~/.bashrc

 

 Le double chevron servira à ajouter l’alias à la fin du fichier, et si celui-ci n’existe pas, il le créera (peu probable, mais sait-on jamais).

Conclusion

J’aurais tant à dire sur les possibilités qu’offre OpenSSH ou les possibilités de personnalisation du shell sous Linux, il en faudrait un bouquin. Les réglages sont nombreux, aussi bien pour le client que pour le serveur. Pour ce dernier, on pourra lire par exemple ces bonnes pratiques pour une sécurisation.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

 Share

×
×
  • Créer...