Se connecter en SSH avec sa clé publique

Marqué :

Se connecter en SSH avec sa clé publique (plutôt que son mot de passe) présente quelques avantages : sécurité renforcée, possibilité de définir un mot de passe « vide »... Voici les étapes à suivre pour configurer son compte SSH avec clé publique :

Générer sa clé privée sous Windows

Nous allons utiliser le générateur de clés fournis avec PUTTY, un logiciel gratuit, disponible à cette adresse: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html (choisir le "Windows Installer", ou bien télécharger puttygen.exe).

Lancer PuTTYGen, générer une paire de clé SSH-2 DSA de 1024 bits et sauvegarder la clé privée dans un dossier personnel de votre ordinateur. Copier la clé publique affichée (avec un CTRL-C) et la sauver dans un fichier temporaire authorized_keys (il ne faut pas cliquer sur Save Public key mais bien faire un copier-coller).

Exemple de clé publique (sur une seule ligne):

ssh-dss AAAAB3NzaC1kc3MAAACBALWEC3j9qDVBUD2GDSiGA7N265of/V0vFXql21tbLLoLxboVy6usY4mcwRtWHes9MvDv64TWH81I72pwUtRqsfnsWuuvq3X/Pw6FWdMKWo91+B+xNDlZE6HmW6PigM4pqXDsiwvP3/CA1rgF/Dkaeq3UVyVux5ZbKexb/JsBC4I9AAAAFQDpGJFV1yrx6AcwuT61jSZ3JIPrxQAAAIBXDoi7WeNfoGMpcw0LaeMzROVr53q3+rUS99kyi6153TSiDph8RlURuBU2C4y67lARYqJy/9Hbm7mShKEUkXhrDacevJfuF5zI9WJ5Jkqt/FtPDzhEmWqhW6EDlckeQFgRM4NE32uBOCEIGb0Ac7M5QY/t+igb49nrq79goYMxdQAAAIARjdjIlrzwa5iew8CKuf97DTCbGy9I4ZLpE9GVCLEi/mgm4+JOCD8Y3exlNdWJogmcc/ec1wJzdP7zgm/I7uraoL6B7BeGfzdQ2KWWvNL7unhGW2q8Rwegh9aQJnapCQ/0irTHhx65XB3oq+Yk30GDEtYioewuGAvSXH8TD0Dtgw== dsa-key-20090731

Uploader sa clé sur le serveur depuis Windows

A l'aide de votre logiciel FTP, créer le dossier .ssh (activer l'option "Afficher les fichiers cachés" pour visualiser le dossier créé). Mettre le fichier authorized_keys dans ce dossier .ssh.

Se connecter en SSH Depuis Windows

Lancer PUTTY.exe. Lors de la première connexion, il faut configurer une session:

Dans la colonne de gauche "Category", choisir SSH et renseigner:

  • Prefered SSH Protocol version: 2
  • Développer (cliquer sur +) pour afficher l'option Auth, et dans Private Key file for auth, indiquer le chemin pour accéder à votre clé privée sur votre ordinateur.

Retourner à la catégory Session, et cliquer sur "save".

Désormais, vous avez configuré une session, que nous avons appelé ssh.alwaysdata.com, qui pourra être utilisée directement ou via SVN.

Double-cliquez sur cette session. Vous devriez être connecté automatiquement, grâce à votre clé privée.

Générer sa clé privée sous Linux ==

$ mkdir -p ~/.ssh
$ chmod 0700 ~/.ssh
$ ssh-keygen -t dsa -f ~/.ssh/id_dsa

Si vous voulez ne jamais avoir à rentrer votre mot de passe lorsque vous vous connecterez en SSH, indiquez une « passphrase » vide.

Uploader sa clé sur le serveur depuis Linux

ssh-copy-id -i ~/.ssh/id_dsa.pub user@ssh.alwaysdata.com

Remplacez « user » par le nom de votre utilisateur SSH.

Uploader sa clé sur le serveur depuis Mac OS X (ou si ssh-copy-id n'est pas disponible)

Copiez votre clé sur votre compte

scp ~/.ssh/id_dsa.pub user@ssh.alwaysdata.com:/home/user

Connectez-vous en ssh avec votre nom d'utilisateur et mot de passe et copiez le contenu de la clé dans .ssh/authorized_keys

mkdir -p ~/.ssh
chmod 0700 ~/.ssh
cat id_dsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Supprimez enfin le fichier id_dsa.pub

rm id_dsa.pub

Se connecter en SSH Depuis Linux

À la prochaine connexion SSH, votre passphrase vous sera demandée (ou rien du tout si votre passphrase est vide).

Si cela ne fonctionne pas ...

  • Vérifiez que le fichier authorized_keys se trouve bien dans le dossier .ssh dans le dossier de démarrage de l'utilisateur SSH. Pour l'utilisateur <user>, c'est /home/<user>/. Si vous avez créé un autre utilisateur SSH, c'est le dossier que vous avez désigné lors de sa création.
  • Dans le fichier authorized_keys, vérifiez que la clé publique est bien sur une seule ligne, et ne contient pas de commentaires ou autres caractères etranges.