• Création d'un serveur ssh avec authentification par clés

    Secure Shell (SSH) est un protocole de communication sécurisé permettant de faire des connexions sécurisées entre un serveur et un client SSH.

    Le protocole de connexion impose un échange de clés de chiffrement en début de connexion.

    Tutoriel réalisé sur Ubuntu 11.04 Natty Narwhal

    Télécharger « fichier_configuration_ssh.pdf »

    Installation du serveur SSH

    Pour installer le serveur SSH, il suffit simplement de taper la commande suivante dans un terminal

    sudo apt-get install opensh-server

    Création d'un répertoire .ssh (coté client et serveur)

    Aller dans le répertoire /home/utilisateur a l'aide de la commande cd.

    faire mkdir  ~/.ssh pour créer le dosssier .ssh

    ensuite faire chmod 0700 ~/.ssh

    Génération d'une clé sur le pc client

    ici, je vais créer une paire de clés DSA d'une longueur de 2048 bits

    ssh-keygen  -t  dsa -b 2048 -f  ~/.ssh/id_server (Vous pouvez choisir de mettre ou pas un mot de passe sur ces clés)

    Attention à bien noter le fingerprint lors de la génération de la clé.

    On se retrouve alors avec 2 fichiers dans .ssh :

    id_server => clé privée qui ira sur vos machines clients

    id_server.pub => clé publique qui ira sur votre serveur

    Copie  de la clé client sur le serveur avec la commande scp

    scp  -P  (port_ssh)  ~/.ssh/id_server.pub  (utilisateur_serveur)@(ip_serveur):~/.ssh/authorized_keys

    PS : la commande ssh-copy-id -i  ~/.ssh/id_server.pub (utilisateur_serveur)@(ip_serveur) aura la même fonction.

    Le port par défaut du ssh étant le 22.

    Le fichier AuthorizedkeysFile contenant les clés des client autorisés a se connecter au serveur

    Vérifier sur le serveur que le fichier authorized_keys a bien été crée :

    cd /home/utilisateur/.ssh

    Et faire la commande ls pour vérifier la présence du fichier.

    Vérification de la connection au serveur du coté client :

    ssh -p(port_ssh)  utilisateur_du_serveur@ip_du_serveur

    Lors de la première connexion SSH depuis le client vers le serveur, le serveur  demande si le fingerprint de la clef publique présentée par le serveur est bien le bon.

    Pour être sûr que l'on se connecte au bon serveur, on doit connaître le fingerprint de la clé publique (celui qui a été noté lors de la génération de la clé) et comparer cette clé à celle qu'il affiche.

    Si les deux fingerprints sont identiques, répondre yes, cette action va alors rajouter directement la clé publique du serveur dans le fichier ~/.ssh/known_hosts du client.

     

    DOCUMENTATIONS WINDOWS

                                                              (cliquer pour ouvrir l'image)

     

    L'authentification par mot de passe (transmis chiffré) est le mode d'identification par défaut ( si une personne connaît votre mot de passe, la sécurité est compromise ).

    Nous allons donc forcer l'authentification par clé publique/privée au lieu des mots de passe.

    Ainsi pour se connecter au serveur, il faudra être en possesion de la clé privé et le mot de passe de cette clé.

    Sur le serveur ouvrir et modifier le fichier sshd_config situé dans /etc/ssh (voir  fichier configuration joint ).

    sudo nano /etc/ssh/sshd_config

    Décommenter la ligne AuthorizedkeysFile afin que les clés des clients puissent être prises en compte par le serveur

    A la ligne PubkeyAuthentication changer le no en yes afin d'autoriser la connection uniquement par clés.

    A la ligne PasswordAuthentication changer le yes en no afin d'interdire la connection par mot de passe.

    Changer le port par défaut de ssh dans ce même fichier pour améliorer la securite du serveur.

    A la ligne Port changer le port 22 par le port de votre choix.

    Empécher la connection au serveur en root.

    A la ligne PermitRootLogin changer le yes en no.

    Enregistrer votre fichier.

    Redémarrer votre serveur ssh avec la commande :

    sudo /etc/init.d/ssh restart

    Maintenant pour se connecter à votre serveur vous n'aurez plus besoin de vous identifier avec votre mot de passe utilisateur,mais uniquement avec la clé privée et la passphrase de celle-ci.

    Vous pourrez vous connecter à votre serveur ssh en sftp via le client ftp filezilla ou l'émulateur de terminal Putty.

    Si vous avez un pare-feu d'activé sur votre serveur, n'oubliez pas d'ouvrir le port ssh.



    « Activer fichier .htaccess apache2 Créer un chroot pour les utilisateurs du service ssh »

    Tags Tags : , , , ,
  • Commentaires

    1
    Jeudi 30 Mars à 03:26
    This is a topic that is ner tto my heart... Thank you! Exacdtly where arre your contct details
    though?
    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :