Table des matières
Authentification par système de clés publique/privée
Création du jeu de clef sur le client
ssh-keygen -t rsa -b 4096
Il sera alors demandé où enregistrer la clé privée (l'endroit par défaut : ~/.ssh
, ne pas changer le nom du fichier généré) puis de choisir une passphrase.
La clef publique a été créée avec la nouvelle clef privée. Elles sont habituellement localisées dans le dossier caché ~/.ssh
:
~/.ssh/id_rsa.pub
pour la clé publique~/.ssh/id_rsa
pour la clé privée
Il est nécessaire, pour que ssh-agent reconnaisse cette paire de clef, d'utiliser la commande :
ssh-add
ou
ssh-add /chemin-complet/vers-la-clef/nom-de-la-clef
The agent has no identities.
alors aucune clef n'est actuellement prise en compte. Il faut recommencer les étapes ci-dessus.
Si la commande ressort :
Could not open a connection to your authentication agent.
alors faire
eval `ssh-agent -s`
puis de nouveau
ssh-add
Pour vérifier la liste des paires de clefs existantes avec l'option :
ssh-add -l
Envoyer la clef sur le serveur
L'utilisateur distant doit avoir cette clé (publique) dans son fichier de clés d'autorisation situé à ~/.ssh/authorized_keys
sur le système distant.
ssh-copy-id -i ~/.ssh/id_rsa.pub -p <num_port> "<username>@<ipaddress>"
Ajouter une clé SSH existante
ssh-add /chemin-complet/vers-la-clef/nom-de-la-clef
Pour vérifier la présence de la clé privée sur la machine :
ssh-add -l
Sécuriser SSH
Modifier le fichier /etc/ssh/sshd_config
:
- Seule la version 2 du protocole SSH doit être autorisée :
Protocol 2
- Changer le numéro du port :
Port <numéro du port>
- Il faut s’assurer de la légitimité du serveur contacté avant de poursuivre l’accès :
StrictHostKeyChecking ask
- L’usage de clés DSA n’est pas recommandé : mettre en commentaires les lignes
HostKey
pointant vers une cléDSA
- Le serveur sshd doit vérifier la rectitude des modes et droits :
StrictModes yes
- L’accès aux comptes sans mot de passe doit être proscrit :
PermitEmptyPasswords no
- Autoriser les connexions via clés :
PubkeyAuthentication yes
- Autoriser les connexions RSA :
RSAAuthentication yes
- Désactiver tous les autres modes de connexion :
UsePAM no
KerberosAuthentication no
GSSAPIAuthentication no
PasswordAuthentication no
- L’opération d’authentification doit être d’une durée relativement courte :
LoginGraceTime 30
- Le nombre de tentatives doit être limitée à une par connexion :
MaxAuthTries 2
- Chaque utilisateur doit disposer de son propre compte :
PermitRootLogin no
- Afficher les informations de dernière connexion à l’utilisateur :
PrintLastLog yes
- Spécifier la liste des utilisateurs autorisés à se connecter au service SSH :
AllowUsers <user> *@10.* *@192.168.* <user>@192.*
- Spécifier la liste des groupes d'utilisateurs autorisés à se connecter au service SSH :
AllowGroups
- Ecouter uniquement sur une adresse d’administration :
ListenAddress A.B.C.D:<Port>
- Sauf besoin, toute fonctionnalité de redirections de flux doit être désactivée :
AllowTcpForwarding no
- Désactiver la redirection X11 sur le serveur :
X11Forwarding no
Redémarrer le service ssh : sudo service ssh restart