Aller au contenu
Vie du geek le forum entre geek
dokkun

Installer une clé ssh sur ses serveurs

Messages recommandés

Lorsque l’on possède un seul serveur, on peut facilement retenir le mot de passe root, ou pas si on s’appelle Dori la pote de Némo… Mais lorsque comme moi vous devez jongler entre le travail et la maison avec environ 200 machines, là retenir 200 mots de passe différents ça devient plus compliqué.

Alors pour se simplifier la tâche, nous allons mettre en place une clé ssh, reconfigurer le serveur openssh et nous créer des alias sur notre machine histoire de nous faciliter la connexion au machine.

Création de la clé ssh

La clé ssh marche avec la combinaison de deux fichiers. Une partie publique que l’on déploie sur les serveurs et la partie privée que l’on conserve précieusement sur votre $HOME

Nous allons donc générer ces deux fichiers.

Pour cela il faut commencer par installer notre client SSH :

apt-get update && apt-get install openssh-client

Ps : Notez l’utilisation de l’opérateur && à la place de &

le && ne lance la suite que lorsque la première partie est entièrement finie.

Nous générons ensuite la clé

ssh-keygen -t rsa -b 2048

ssh-keygen prend ici deux paramètres :

-t : Permet de spécifier le type de clé. je vous invite à lire le man pour voir les 4 possibilités suivant le protocole (à noter que le dsa est limité à un encryptage de 1024bits, c’est pour cela que je préfère le rsa).

-b : 2048 représente le niveau d’encryptage de la clé, ici j ai mis 2048 bits.

Il vous faut répondre maintenant à une série de questions, dont celle ci, qui permet surtout de nommer votre clé !!

Enter file in which to save the key (/home/ivanb/.ssh/id_rsa) :

Entrez le chemin complet en modifiant le id_rsa par cle_perso_serv, enfin ce que vous voulez.

Enter passphrase (empty for no passphrase):

Si vous laissez vide pas besoin de mot de passe, par contre si vous saisissez un mot de passe, il faudra le saisir pour que la clé fonctionne. Bon certain rabat-joie vont me dire « je ne vois pas l’intérêt de faire une clé pour mettre un mot de passe dessus! ».

On parle d’une clé root ici, on est jamais trop parano. De plus, la saisie du mot de passe en passant par votre bureau ne se fera qu’une fois puisque l’agent ssh va stocker. C’est un peu comme si vous déverrouillez votre coffre fort. Pour toutes les autres connexions sur les serveurs utilisant cette clé, il n’y aura plus besoin de la ressaisir.

Maintenant vous avez deux fichiers : cle_perso_serv et cle_perso_serv.pub

Installation de la clé

Il ne reste plus qu’à installer votre clé publique sur votre serveur.

En premier lieu il faut que sur le serveur vous ayez déjà défini un compte avec le login et le mot de passe.

ssh-copy-id -i ~/.ssh/cle_perso_serv.pub user@monserveur.com

user : le nom d’utilisateur pour qui la clé sera disponible

monserveur.com : soit l’ip soit le nom de domaine rattaché au serveur.

Saisissez le mot de passe. Le tour est joué.

Testez votre connexion :

ssh user@monserveur.com

Pour aller plus loin SÉCURISATION

L’intérêt de la clé ssh est bien sur de nous faciliter la vie mais aussi de sécuriser la connexion à des comptes comme root.

Voici quelques petits réglages supplémentaires :

éditez le fichier /etc/ssh/sshd_config

Modifiez la ligne

PermitRootLogin Yes

en

PermitRootLogin without-password

Modifiez le port d’ecoute ssh

Port 22

en

Port 222

On restart le serveur ssh

/etc/init.d/ssh restart

Facilité d’utilisation

Si vous avez beaucoup de serveurs a gérer il est intéressant de se créer des alias.

Au lieu de taper :

ssh user@monserveur.com

vous aurez à faire

sshserveur

Pour cela éditez votre fichier .bashrc

vim ~/.bashrc

rajoutez la ligne :

alias sshserveur='ssh user@monserveur.com'

si vous avez modifié le port cela sera

alias sshserveur='ssh -p 222 user@monserveur.com'

Debug

Il m’est arrivé récemment une drôle d erreur en essayant de me connecter en ssh à un serveur n’ayant pas de clé.

Received disconnect from XXX.XXX.XXX.XXX: 2: Too many authentication failures for user

Cela vient en fait de notre ssh-agent qui tente de lancer notre clé pour s’authentifier. Au bout d’un moment le serveur en face de nous nous bloque sans nous laisser la possibilité de taper notre mot de passe.

Pour cela il faut faire une connexion ssh de ce type :

ssh -o PubkeyAuthentication=no user@monserveur.com

De plus si comme moi vous avez beaucoup de clés, vous pouvez modifier vos alias en spécifiant la clé à utiliser pour le serveur. Cela donnera

alias sshserveur='ssh -p 222 -i ~/.ssh/cle_perso_serv user@monserveur.com'
 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×