Linux
Sécurité
OpenSSH
Tutoriel pour installer une infrastructure client et serveur en SSH
Pour : Linux
Installation de OpenSSH
Sur la machine serveur, tapez ceci dans un terminal pour installer le serveur OpenSSH.
apt-get install openssh-server
Sur les postes qui ce connecteront sur le serveur, installez le client OpenSSH.
apt-get install openssh-client
L'authentification par mot de passe
Ceci est le type d'authentification de base en ssh avec un mot de passe (passwd).
Connecter vous en "ssh" a un compte distant et saisir le mot de passe de l'utilisateur qui est sur cette machine.
Syntaxe:
ssh nom_utilisateur@ip_ou_nom_machine -p numero_de_port
Exemple:
ssh cedric@192.168.10.20 -p 1500
Une fois la connexion établit, cela va rajouter la clé publique(empreinte) du serveur distant depuis son fichier "/etc/ssh/ssh_host_dsa_key_pub" et l'inscrire dans votre fichier local "/home/[nom_utilisateur]/.ssh/known_hosts".
Pour avoir plus d'explication sur le fichier "known_hosts", voir ce lien:
ssh - Fichier "known_hosts" liste les clés publique des serveurs
Voici a quoi ressemble cette clé:
|1|hZl84498eTs5fadf1TwmlkUgYuL=|Qo25GH5T5KLKfatPVgMM4A07Y2c= ssh-rsa AAAAB3NzaC1yc2E4AAAD5QABAAAB ...
L'authentification par clé publique/privé
Ce type d'authentification est bien plus sécurisé qu'un simple mot de passe, elle est contitué de :
Une clé publique => A exportée sur chaque machine que l'on veut se connecter.
Une clé privée => Permet de prouver son identité aux serveurs SSH.
Une passphrase => Permet de sécuriser la clé privée.
La création de la paire de clé se fait avec la commande "ssh-keygen".
Cela créera les deux clé (id_dsa, id_dsa.pub) dans le répertoire par défault "/home/[utilisateur]/.ssh/".
Saisissez ceci pour créer la paire de clé publique/privé:
ssh-keygen -t dsa
Pour avoir plus de détail sur la commande "ssh-keygen", voir ce tutoriel:
ssh-keygen - Générateur de clé publique/privé en SSH
Déploiement des clés publique sur les machines distante
L'utilisateur distant doit posséder notre clé publique dans son fichier d'autorisation "~/.ssh/authorized_keys".
Pour plus d'explication sur le fichier "authorized_keys", voir ce lien:
ssh - Fichier "authorized_keys" les clés publique autorisé a se connecter au compte
Chaque ligne de ce fichier représente la clé publique des postes autorisées a ce connecter, clé qui ce retrouve sur le client dans "~/.ssh/id_dsa.pub".
Pour rajouter votre clé dans le fichier "~/.ssh/authorized_keys" de la machine distante on va utiliser la commande "ssh-copy-id".
ssh-copy-id est un script qui permet de mêttre une clé sur la machine distante en utilisant le ssh.
Vous devrez saisir le mot de passe du compte de l'utilisateur sur cette machine distante.
L'authentification par mot de passe "PasswordAuthentication yes" doit donc être autorisée dans le fichier de configuration du serveur ssh.
Syntaxe:
ssh-copy-id -i ~/.ssh/id_dsa.pub [nom_utilisateur]@[ip_ou_nom_machine] -p [numero_de_port]
Exemple:
ssh-copy-id -i /home/cedric/.ssh/id_dsa.pub cedric@192.168.10.20
Vous avez d'autre méthode pour envoyer votre clé sur les serveurs ssh.
Syntaxe:
cat ~/.ssh/id_dsa.pub | ssh utilisateur@machine "cat - >> ~/.ssh/authorized_keys"
Exemple:
cedric@pc-octetmalin:~/$ cat ~/.ssh/id_dsa.pub | ssh cedric@192.168.10.20 "cat - >> ~/.ssh/authorized_keys"
cedric@192.168.10.20's password:
cedric@pc-octetmalin:~/$
Maintenant connecter vous en "ssh" sur ce poste distant.
Si tout c'est bien déroulé il devrait plus vous demander le mot de passe mais la passphrase.
La passphrase permet de déchiffrer la clé privée du système local.
Exemple:
cedric@pc-compaq:~/.ssh$ ssh cedric@192.168.10.20
Enter passphrase for key '/home/cedric/.ssh/id_dsa':
Welcome to Ubuntu 11.10 (GNU/Linux 3.0.0-12-generic i686)
* Documentation: https://help.ubuntu.com/
You have new mail.
Last login: Wed Nov 16 11:35:15 2011 from pc-sport.local
cedric@pc-compaq:~$
PS: Vérifiez dans le fichier "/etc/ssh/sshd_config" du poste distant(serveur) que les lignes suivantes sont sur yes, car dans le cas contraire c'est le mot de passe qui vous sera demandé et non la passphrase.
RSAAuthentication yes
PubkeyAuthentication yes
Dans le cas où c'est toujours votre mot de passe qui est demandé, supprimez les clé sur le poste local et distant pour repartir a zéro et recommançez le tutoriel.
PS: Si le fichier "authorized_keys" existe, vérifier d'avoir une ligne de vide a la fin du fichier, dans le cas contraire l'ajout d'une nouvelle clé risque de ce mêttre bout à bout avec un autre clé, les rendant toutes les deux inutilisable.
La configuration du client SSH
Il y deux fichiers pour configurer le client ssh, l'un ce trouve dans le répertoire système "/etc/ssh/ssh_config" pour les paramètres global vers tous les serveurs et le deuxième qui est dans chaque répertoire utilisateur qui va ce connecter sur un serveur ssh distant(~/.ssh/config).
Voir ce lien:
ssh - Fichier de configuration du client (/etc/ssh/ssh_config et ~/.ssh/config)
Configuration du serveur SSH
La configuration du serveur "ssh" ce fait par l'intermédiaire du fichier "/etc/ssh/sshd_config" et nécessite les droits du compte "root" pour sa modification.
Pour plus d'information voir ce lien:
ssh - Fichier de configuration du serveur (/etc/ssh/sshd_config)
L'agent SSH
La commande "ssh-agent" et "ssh-add" permêtent de gerer vos clé et passephrase en mémoire, dans le but d'éviter de retapez a chaque fois les longues passphrases.
Pour plus d'information voir ce lien:
Agent SSH (ssh-agent) - Gestion des clés et leur passphrase en mémoire (ssh-add)
Lien pour aller sur le site de l'éditeur:
www.openssh.com/fr
Liens qui peuvent vous aidez:
ssh - Fichier "known_hosts" liste les clés publique des serveurs
ssh-keygen - Générateur de clé publique/privé en SSH
ssh - Fichier "authorized_keys" les clés publique autorisé a se connecter au compte
ssh - Fichier de configuration du client (/etc/ssh/ssh_config et ~/.ssh/config)
ssh - Fichier de configuration du serveur (/etc/ssh/sshd_config)
Agent SSH (ssh-agent) - Gestion des clés et leur passphrase en mémoire (ssh-add)
Par O.Cédric
Sur www.octetmalin.net
Article publié le:
18/11/2011 10:23
Cette page vous à plus?
Dîtes que vous l'aimez en cliquant sur le bouton Facebook.