Ceci est une ancienne révision du document !
Une fois le serveur OpenSSH installé, ouvrez le fichier /etc/ssh/sshd_config et décommentez les lignes suivantes :
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys
Redémarrez le serveur via la commande suivante :
Utilisateur$ /etc/init.d/ssh restart
Commencez par lancer la génération via la commande suivante :
Utilisateur$ ssh-keygen -t rsa -b 4096
Laissez le répertoire d'enregistrement des clefs par défaut :
Generating public/private rsa key pair. Enter file in which to save the key (/home/test/.ssh/id_rsa): (Laissez par défaut et pressez Entrée)
Choisissez ensuite si vous désirez indiquer une phrase de passe pour votre clef.
Il s'agit là de faire un choix entre sécurité et simplicité : si vous ne choisissez pas de mot de passe, en cas de vol de votre clef privé, la personne aura un accès direct à vos serveurs, cependant entrer la phrase de passe à chaque fois peut s'avérer ennuyeux.
Ici nous choisirons de ne pas indiquer de mot de passe :
Created directory ‘/home/test/.ssh’. Enter passphrase (empty for no passphrase): (Laissez par défaut et pressez Entrée) Enter same passphrase again: (Laissez par défaut et pressez Entrée) our identification has been saved in /home/Utilisateur/.ssh/id_rsa. Your public key has been saved in /home/Utilisateur/.ssh/id_rsa.pub. The key fingerprint is: 95:05:13:a1:a4:71:27:fe:a0:2f:d7:4e:af:82:8a:a8 Utilisateur@serveur.com The key’s randomart image is: +–[ RSA 4096]—-+ | . + *+. | | * + + | | . + o | | . + | | . S . | | . . | | ..o o | | . . .o.o . | |E . .. .o.. | +————-----—–---+
Envoyez votre clef publique sur le serveur OpenSSH:
Utilisateur$ scp ~/.ssh/id_rsa.pub Utilisateur@serveur.com:~/clefPublique
Entrez ensuite cette clef dans le fichier authorize_keys sur le serveur OpenSSH:
Utilisateur$ touch ~/.ssh/authorized_keys Utilisateur$ cat clefPublique >> ~/.ssh/authorized_keys
Commencez par télécharger PuttyGen ici, il s'agit de l'outil de génération de clef.
Lancez PuttyGen et générez une clef de type SSH2-RSA et d'une taille de 4096 bits, puis enregistrez les deux clefs où vous le souhaitez (Mes Documents par exemple)
Téléchargez WinSCP ici, puis installez le.
Envoyez la clef publique générée sur le serveur OpenSSH, placez la dans le répertoire home de l'utilisateur sur lequel se connecter. Le client WinSCP fonctionne comme la majorité des clients FTP graphique connus, je ne vais donc pas détailler son utilisation.
Entrez ensuite cette clef dans le fichier authorize_keys sur le serveur OpenSSH:
Utilisateur$ ssh-keygen -i -g ~/clefPublique > ~/clefPubliqueOpenSSH Utilisateur$ touch ~/.ssh/authorized_keys Utilisateur$ cat clefPubliqueOpenSSH >> ~/.ssh/authorized_keys
Lancez PuttyGen, cliquez sur “Load”, Sélectionnez votre clé privée précédemment générée pour Windows. Cliquez sur l'onglet “Conversion”, cliquez sur “Export Openssh key”. Nommez la clé nomdelaclé.ssh
Vous pouvez vous connecter tout simplement ainsi:
Utilisateur$ ssh Utilisateur@serveur.com
Vous n'êtes désormais plus prompté pour votre mot de passe.
Lancez PuttySSH, allez dans Connections/SSH/Auth et cliquez sur “Browse”, puis choisissez votre clef privée.
Allez ensuite dans Session puis indiquez l’adresse du serveur, et cliquez sur Open.
Vous voila connecté.
Sur le serveur OpenSSH, ouvrez de nouveau le fichier /etc/ssh/sshd_config et indiquez que vous n’autorisez plus la connexion par mot de passe :
PasswordAuthentication no
Redémarrez enfin le serveur OpenSSH:
Utilisateur$ /etc/init.d/ssh restart
Vous avez terminé, attention cependant à ne pas perdre votre clef privée.
Si la connexion freeze après un certain temps d'inactivité, ajoutez les deux lignes suivantes au fichier de configuration du serveur SSH. Les valeurs peuvent être ajustée.
ClientAliveInterval 5 ClientAliveCountMax 2
Le programme ssh-keygen permet de changer la passphrase associée à un couple clef privée/publique :
utilisateur $ ssh-keygen -p [--P old_passphrase] [-N new_passphrase] -f keyfile
Si (old|new)_passphrase ne sont pas donnée, ils seront demandés à l'utilisateur par un prompt.
Lorsque vous êtes l'administrateur de la machine et qu'elle est déjà configurée pour n'accepter que les passphrases, l'utilisation de ssh-copy-id n'est pas possible pour ajouter une clef à un autre utilisateur. En utilisant un compte disposant de suffisemment de droits, il est possible d'utiliser :
cat id_xxx.pub | ssh admin_user@domain "cat - >> /home/new_ssh_user/.ssh/authorized_keys"
sshd_config propose une option RevokedKeys file. TODO