fév

27

Posted by : admin | On : 27 février 2011

Allé ca fait longtemps que j’ai pas geeker je vais parler ici de l’authentification sur serveur linux (je pars sur une base Debian mais ca doit le faire pour toutes les distri pareil je pense).

Bon pour faire simple à chaque fois que je me connecte sur un serveur en ssh (30 fois par jours quoi :p ) je dois me rappeler le mot de passe que j’ai attribué (différent pour chaque serveur en plus :’( ) donc pas cool.

Miracle, il existe une manière simple de s’authentifier sans ce casse tête merdique :) => les clés RSA!!!

En gros, lorque je me connecte a mon serveur ssh avec mon petit terminal, ce dernier envoi sa clé qui correspond avec celle stocké précédemment sur le serveur et paf ca m’authentifie :) . En pratique ca se configure super simplement.

Pour la mise en situation, je me connecte depuis mon macbook sur ma machine debian sur mon réseau local.

1/ ouvrir un terminal (natif sur mac et linux, putty sur un pc sous merdows)

2/ générer ses clés publique et privée avec la commande :

TFLmac:~ tfl$ ssh-keygen -t rsa
Generating public/private rsa key pair.
il est préférable de laisser l’emplacement apr défaut pour le stockage :)
Enter file in which to save the key (/Users/tfl/.ssh/id_rsa):
la passphrase, perso OSEF mais permet de sécuriser la première connection…
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/tfl/.ssh/id_rsa.
Your public key has been saved in /Users/tfl/.ssh/id_rsa.pub.
The key fingerprint is:
*********************
J’ai pas recopié volontairement les derniers chiffres et beaux dessins par ins contiennent deux trois infos un poil privées ;)
et voila il ne reste plus qu’à rentrer la clé sur le serveur et à dire à ce dernier de la lire :)
ce qui donne :
3/ copie du contenu de la clé publique sur le serveur avec la simlpe commande :
TFLmac:~ tfl$cat .ssh/id_dsa.pub | sshuser@ip_du_serveur « test -d .ssh || mkdir -m 0700 .ssh; cat – >>.ssh/authorized_keys »
4/ connection sur le serveur en ssh (encore en méthode traditionnelle login mot de passe:
TFLmac:~ tfl$ ssh tfl@192.168.0.252
tfl@192.168.0.252′s password:
Linux SRVtfl 2.6.26-2-686 #1 SMP Thu Jan 27 00:28:05 UTC 2011 i686

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: Sun Feb 27 12:01:02 2011 from tflmac.local
tfl@SRVtfl:~$
5/ modification du fichier de configuration de openssh:
tfl@SRVtfl:~$ sudo nano -w /etc/ssh/sshd_config
puis modifier les lignes suivante:
PermitRootLogin no
(permet d’interdire l’accès en ROOT au serveur via SSH, très utile)
AllowUsers USERS
(remplacer USERS par son pseudo, permet de restreindre les connection a cet utilisateur uniquement)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
(permet d’activer le système d’authentification par échange de clés)
6/ Et voila je pense avoir fait le tour il suffit d’enregistrer votre ficher (ctrl + x) et de valider pour quitter l’éditeur de texte puis de relancer votre serveur ssh avec la commande:
tfl@SRVtfl:~$ sudo /etc/init.d/ssh restart

Il ne vous reste plus qu’à vous connecter avec votre terminal préféré depuis votre machine pour apercevoir la belle connexion automatique :

TFLmac:~ tfl$ ssh 192.168.0.252

Linux SRVtfl 2.6.26-2-686 #1 SMP Thu Jan 27 00:28:05 UTC 2011 i686

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: Sun Feb 27 12:44:00 2011 from tflmac.local

tfl@SRVtfl:~$

Vous pouvez bien entendu compléter le fichier ~/.ssh/authorized_keys de votre serveur avec autant de clés publique que vous voulez afin d’autoriser toutes vos machines à se connecter au serveur via cette méthode :)

Enjoy it ;)