SSH, (Secure Socket Shell), protocole réseau qui permet aux administrateurs d’accéder à distance à un ordinateur, en toute sécurité. Le protocole SSH assure une authentification forte des données transmises, chiffrées sécurisées, entre deux ordinateurs connectés sur un réseau peu sûr, tel qu’Internet.SSH est largement utilisé par les administrateurs réseau pour gérer à distance les systèmes et les applications, car il leur permet de se connecter à un autre ordinateur, et de le gérer comme s’il était sur place. Ce protocole est pré-installé en distribu-tion nue. L’accès ‘root’ doit être, par sécurité, inaccessible par SSH. Le service ssh-client est également installé par défaut sur une machine debian utilisateur.
2. CÔTÉ SERVEUR
Le serveur est considéré ici comme la machine que l’on souhaite administrer à distance. La liste des utilisateurs autorisés à se connecter en externe, (à raison d’une ligne par utilisateur et terminée par un retour à la ligne), est consignée (sur le serveur), dans le fichier paramètre : /root/.ssh/authorized_keys Ce fichier peut-être alimenté manuellement en copiant le contenu de la clé publique de la machine ‘cliente’ désirée, sur une ligne à part. Mais en principe, cette machine ‘cliente’ peut aussi l’exporter directement (voir plus loin). Pour sécuriser le port SSH (port autre que 22), et que ces utilisateurs puissent se connecter sans saisir de mot de passe, il est nécessaire de modifier le fichier /etc/ssh/sshd_config
2.1 Copie de sécurité de la configuration initiale et protection du fichier
cd /etc/ssh
cp sshd_config sshd_config.bak
chmod 400 sshd_config.bak
2.2 Configurer le démon ssh
nano sshd_config
Repérez et modifier les paramètres tel que suit:
# Un port ‘atypique’ augmentera la difficulté de repérage
Port 2233
# PermitRootLogin prohibit-password … à remplacer par :
PermitRootLogin no
et ajouter:
AllowUsers root debian sysadmin (restreindre l’accès SSH aux seuls admins)
2.3 Prise en compte
systemctl ssh restart
2.4 Prise en compte général par redémarrage du VPS
sudo reboot
3. CÔTÉ CLIENT (VOTRE MACHINE D’ADMINISTRATION)
3.1 Génération d’une paire de clés SSH privée/publique
cd /home/debian/.ssh (créer ce répertoire avant, éventuellement)
Création d’une clé rsa forte sans ‘passphrase’ :
ssh-keygen -b 4096 -t ed25519 -f id_rsa -P « »
(le répertoire local .ssh sera créé s’il n’existe pas). Deux fichiers seront alors générés sur la machine du client:
/home/debian/.ssh/id_rsa (Clé privée à conserver ici, sur le serveur)
/home/debian/.ssh/id_rsa.pub (Clé publique)
La clé privée, en général, comme pour les certificats par exemple, est celle du serveur. En SSH, par contre, c’est celle de la machine qui souhaite se connecter à un serveur distant. La clé privée ne dois jamais être transmise à des tiers, et doit en outre être protégée par un ‘chmod 400’, pour plus de sécurité.
La clé publique, sera celle du serveur distant, pour reconnaître les utilisateurs externes habilités à se connecter à lui en SSH !
3.2 Transmettre la clé publique de l’utilisateur au serveur distant à administrer Via une commande SSH
ssh -copy-id debian@51.75.201.250
⇒ répondre yes pour mémoriser le fingerprint du serveur distant
3.3 Se reconnecter au serveur distant, et sur son port ‘atypique’
ssh debian@51.75.201.250 -p2233
Une connection SSH s’avérera extrêmement adéquate pour un administrateur de systèmes, que celui-ci intervienne en local ou à distance. Dans les deux cas, la communication sera sécurisée.