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:
- HostName: mettre user@ssh.alwaysdata.com
- Connection type: SSH
- Saved Sessions: ssh.alwaysdata.com
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.