Wednesday, August 10, 2011

Authentication with PublicKeys

Ce document explique les différentes étapes pour mettre en place l'authentification par clef
publiques.

Les avantages tirés sont pluriel:

- Evite la propagation des mots de passe root,
- Evite l'utilisation d'un mot de passe trop simple, souvent utilisé pour ne
  pas l'oublier, et car les connexion sont nombreuses dans une journée,
- Ajoute une granularité dans la mise en place de la sécurité,
- Facilite le travail quotidien, par des connexions plus rapides.


I - Coté client

1.1 Création des paires de clef privée/publiques cliente.

Les clef sont crée avec la commande `ssh-keygen', il vous sera demander un nom
de fichier, acceptez celui par défaut, puis une pass-phrase (Le mot de passe),
veillez à en choisir un assé long, une phrase serait l'idéal.

    $ ssh-keygen -t rsa1 # SSH1
    $ ssh-keygen -t rsa  # SSH2
    $ ssh-keygen -t dsa  # SSH2

1.2. L'agent ssh

Maintenant pour éviter d'avoir à taper notre passphrase à chaque connexion,
nous allons utiliser la commande `ssh-agent'. Grâce à lui, nous n'aurons qu'à
taper notre passphrase qu'une fois au début de la journée:

    $ eval $(ssh-agent)
    Agent pid 2592


puis il nous faut ajouter nos clef.
Rem: si vous avez choisi la même passphrase pour toutes les trois clef, elle
ne vous sera demandée qu'une seulle fois:

    $ ssh-add
    Enter passphrase for /home/YE01389/.ssh/id_rsa:
    Identity added: /home/YE01389/.ssh/id_rsa (/home/YE01389/.ssh/id_rsa)
    Identity added: /home/YE01389/.ssh/id_dsa (/home/YE01389/.ssh/id_dsa)
    Identity added: /home/YE01389/.ssh/identity (YE01389@CTIRE333)


On peut verifier qu'elles ont bien été prises en compte:

    $ ssh-add -l
    2048 9a:08:b9:b8:e6:25:bd:6c:4e:8c:25:13:2e:36:62:97 YE01389@CTIRE333 (RSA1)
    2048 5b:7f:cd:96:2c:f4:41:66:1a:83:4b:ff:ad:89:85:42 /home/YE01389/.ssh/id_rsa (RSA)
    2048 9a:e0:e3:af:b8:65:a1:c6:06:2c:80:8e:8a:1a:c9:30 /home/YE01389/.ssh/id_dsa (DSA)


Coté client c'est Ok.

II - Coté serveur

passons sur l'installation du serveur ssh, et concentrons nous sur le
spécifique pour accepter l'Authentification par Clef publiques.


2.1 La configuration du serveur:

Les options suivante doivent être présentes dans le fichier de conf :

/opt/ssh/etc/sshd_config:

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile    .ssh/authorized_keys

    StrictModes no # Si les droits sur le $HOME ne sont pas 0700


puis pour recharger la config :

$ kill -1 $(cat /var/run/sshd.pid)

2.2 Ajout des clef.

Pour que la connexion soit possible, il nous faut rajouter la(les) clef
publique dans le fichier d'authorization:

Après avoir copié sur le serveur la clef publique (DSA):
   
    $ cat id_dsa.pub >>$HOME/.ssh/authorized_keys

III - Test de connexion

    $ ssh unix@support
    MMSQYY00 [HP Release B.11.00]
    Last   successful login for unix: Tue Sep 20 15:12:54 MET-1METDST 2005 on pts/43
    Last unsuccessful login for unix: Tue Sep 20 09:58:07 MET-1METDST 2005 on pts/tp
    Last login: Mon Aug 29 20:19:36 2005 from VPNRE1NT.arpege
    You have mail.
   
Dans les logs:

    Sep 20 15:17:32 mmsqyy00 sshd[24103]: Accepted publickey for unix from 126.52.3.102 port 3546 ssh2



No comments: