SSH signifie Secure Shell et c'est un protocole utilisé pour accéder en toute sécurité à un serveur distant sur un réseau local ou sur Internet pour la configuration, la gestion, la surveillance et le dépannage, etc.
Dans cet article, je vais vous expliquer comment gérer un serveur Linux distant à l'aide de SSH.
J'ai exécuté toutes les commandes sur mes machines Debian 10.
Prérequis
Vous devez disposer des éléments suivants.
- Deux machines Debian 10 avec des privilèges root.
- Une adresse IP, un nom d'utilisateur et un mot de passe de la machine distante.
- Connexion Internet sur les deux machines.
Comment installer un serveur SSH ouvert ?
Une fois que vous avez configuré une nouvelle machine Linux dans votre infrastructure, il est important de la préparer pour un accès à distance. Par conséquent, il est obligatoire d'installer open ssh sur un serveur ou une machine distante à laquelle vous essayez d'accéder.
Avant d'installer un serveur SSH ouvert, exécutez la commande suivante pour mettre à jour le référentiel.
apt-get update
Attendez que l'opération soit terminée.
Après avoir mis à jour le référentiel, exécutez la commande suivante avec les privilèges root pour installer un serveur SSH ouvert.
apt-get install openssh-server
Lorsque vous êtes invité à confirmer, appuyez sur "y" sur le clavier et attendez la fin de l'installation. Cela peut prendre plusieurs minutes.
Configuration des paramètres du serveur SSH
Une fois Open SSh installé côté serveur, nous pouvons modifier ses paramètres de configuration de base. Ouvrez le terminal et exécutez la commande suivante avec les privilèges root.
nano /etc/ssh/sshd_config
Voici l'exemple de sortie.
Vous pouvez modifier les différents paramètres dans le fichier ci-dessus.
Par défaut, SSH écoute sur le port 22. Vous pouvez passer au port souhaité. Vous pouvez également modifier le nombre maximal de sessions (MaxSessions) pouvant être établies simultanément avec le serveur, 10 est la valeur par défaut.
Changer le port SSH du serveur
Comme nous l'avons vu, le serveur écoute par défaut sur le port 22. Si vous souhaitez configurer votre serveur pour écouter un port spécifique, voici la marche à suivre.
Ouvrez le terminal et exécutez la commande suivante avec les privilèges root.
nano /etc/ssh/sshd_config
Un fichier doit être ouvert comme indiqué dans la capture d'écran ci-dessus.
Localisez le port 22 ou #Port 22 et tapez le numéro de port souhaité sans le signe #.
Il est recommandé d'utiliser le numéro de port entre 1024 et 65535 car les ports 0-1023 sont réservés à des services spécifiques.
Supposons que vous affectiez 2222, écrivez ce qui suit dans le fichier de configuration SSH.
Port 2222
Vous trouverez ci-dessous l'exemple de sortie après modification du numéro de port.
Redémarrez le service SSH en exécutant la commande suivante sur le terminal.
service ssh restart
Activation de la connexion root sur le serveur SSH
Par défaut, vous ne pouvez pas vous connecter directement au serveur SSH avec les privilèges root pour des raisons de sécurité. Si vous souhaitez activer cette connexion, vous devez apporter des modifications au fichier de configuration du serveur SSH.
Ouvrez le terminal et exécutez la commande suivante avec les privilèges root pour ouvrir le fichier de configuration.
nano /etc/ssh/sshd_config
Ajoutez la ligne suivante dans le bloc d'authentification,
PermitRootLogin oui
Vous trouverez ci-dessous l'exemple de sortie après avoir apporté des modifications au fichier de configuration.
Redémarrez le service SSH en exécutant la commande suivante sur le terminal avec les privilèges root.
service ssh restart
Réduire les tentatives de connexion infructueuses au serveur SSH
Par défaut, vous pouvez faire 6 tentatives de connexion au serveur SSH. Une fois que la valeur atteint la moitié de 6, des échecs de connexion supplémentaires sont consignés. Si vous souhaitez modifier cette valeur, vous devez ajuster le paramètre MaxAuthTries dans le fichier de configuration du serveur SSH.
Ouvrez le terminal et exécutez la commande suivante avec les privilèges root.
Ajoutez la ligne suivante (supposez que vous souhaitiez définir cette valeur sur 1) dans le bloc Authentification.
MaxAuthTries 1
Vous trouverez ci-dessous l'exemple de sortie après avoir apporté des modifications au fichier.
Redémarrez le service SSH en exécutant la commande suivante sur le terminal avec les privilèges root.
service ssh restart
Vous trouverez ci-dessous l'exemple de sortie.
Après un seul échec de connexion, vous recevrez trop de messages d'échecs d'authentification, comme indiqué dans la capture d'écran suivante.
Forcer le serveur SSH à écouter des IP spécifiques
Par défaut, le serveur SSH écoute toutes les adresses IP attribuées à votre serveur SSH. Cependant, en apportant des modifications au fichier de configuration, vous pouvez forcer votre serveur SSH à écouter des adresses IP spécifiques. Voici comment.
Supposons que j'ai deux adresses IP (10.1.1.2 et 10.1.1.3) attribuées à mon interface, comme indiqué dans la capture d'écran suivante. Je veux forcer mon serveur à écouter l'adresse IP 10.1.1.2.
Ouvrez le terminal et exécutez la commande suivante avec les privilèges root pour ouvrir le fichier de configuration SSH.
nano /etc/ssh/sshd_config
Ajoutez la ligne suivante en haut du fichier,
ListenAddress 10.1.1.2
Vous trouverez ci-dessous l'exemple de sortie après avoir apporté des modifications au fichier de configuration.
Redémarrez le service SSH en exécutant la commande suivante sur le terminal.
redémarrage du service ssh
Autoriser ou refuser à des utilisateurs ou à des groupes spécifiques de se connecter au serveur SSH
Par défaut, chaque utilisateur peut se connecter à distance au serveur SSH. Cependant, vous pouvez autoriser ou refuser à des utilisateurs ou à des groupes spécifiques de se connecter au serveur SSH.
Ouvrez le terminal et exécutez la commande suivante avec les privilèges root pour ouvrir le fichier de configuration du serveur SSH.
nano /etc/ssh/sshd_config
Vous trouverez ci-dessous l'exemple de sortie.
Supposons que vous souhaitiez autoriser uniquement l'utilisateur "tony" à se connecter à distance au serveur SSH. Aucun autre utilisateur ne pourra se connecter au serveur SSH. Si vous avez plusieurs utilisateurs, ils doivent être séparés par un espace.
Ajoutez la ligne suivante dans le fichier de configuration du serveur SSH.
AllowUsers tony
Ci-dessous se trouve l'exemple de fichier de configuration après avoir ajouté la ligne,
Redémarrez le service SSH en exécutant la commande suivante avec les privilèges root sur le terminal,
service ssh restart
De même, si vous souhaitez autoriser tous les utilisateurs à se connecter à distance au serveur SSH mais souhaitez en interdire un ou plusieurs, ajoutez les lignes suivantes dans le fichier de configuration du serveur. Les utilisateurs doivent être séparés par commande. Supposons que je veuille refuser uniquement l'utilisateur "tony", ajoutez la ligne suivante dans le fichier de configuration du serveur.
DenyUsers tony
Vous trouverez ci-dessous l'exemple de fichier de configuration après avoir ajouté la ligne ci-dessus.
Redémarrez le service SSH en exécutant la commande suivante avec les privilèges root sur le terminal.
service ssh restart
De même, vous pouvez autoriser et refuser à des groupes d'utilisateurs de se connecter au serveur SSH en ajoutant les lignes suivantes dans le fichier de configuration.
AllowGroups <groupname>
ou
DenyGroups <groupname>
Si vous avez plusieurs groupes à autoriser ou à refuser, vous pouvez les séparer par un espace.
La combinaison d'autorisation et de refus est traitée dans l'ordre suivant.
DenyUsers, AllowUsers, DenyGroups et enfin AllowGroups
Modification du délai de grâce de connexion
Par défaut, vous disposez de 2 minutes pour vous connecter à un serveur distant après SSH. Si vous ne pouvez pas vous connecter à un serveur distant dans les 2 minutes, le SSH se déconnectera. Voici comment modifier le délai de grâce de connexion.
Ouvrez le terminal et exécutez la commande suivante avec les privilèges root pour ouvrir le fichier de configuration du serveur.
nano /etc/ssh/sshd_config
Vous trouverez ci-dessous l'exemple de sortie.
Localisez la ligne suivante,
#LoginGraceTime 2m
Remplacez cette ligne par le temps de grâce souhaité, disons 1 minute. La ligne complète devrait être,
LoginGraceTime 1m
Vous trouverez ci-dessous l'exemple de fichier de configuration après avoir apporté des modifications.
Fermez le fichier et redémarrez le service SSH en exécutant la commande file.
service ssh restart
Comment installer le client OpenSSH
La machine Debian 10 qui va accéder à une machine ou à un serveur distant s'appelle un client et nous devons y installer un "client SSH ouvert".
Ouvrez le terminal et exécutez la commande suivante pour mettre à jour le référentiel.
apt-get update
Attendez que l'opération soit terminée.
Dès que le référentiel est mis à jour, exécutez la commande suivante pour installer un client SSH ouvert.
apt-get install openssh-client
Lorsque vous êtes invité à confirmer, appuyez sur Y à partir du clavier. L'installation peut prendre plusieurs minutes, veuillez donc être patient.
Exécutez la commande suivante sur le client et le serveur pour confirmer que le service SSH est en cours d'exécution.
Une fois que nous avons SSH exécuté à la fois sur le client et le serveur sur une machine distante, nous pouvons passer à la gestion à distance.
Connexion au serveur Debian 10 distant avec SSH
Pour vous connecter à la machine Debian 10 distante, vous devez disposer de son adresse IP, de son nom d'utilisateur et de son mot de passe.
Voici la syntaxe complète de la commande si votre serveur SSH écoute sur le port par défaut 22.
ssh <[email protected]>
Vous serez invité à entrer un mot de passe utilisateur, fournissez-le à l'aide du clavier et appuyez sur Entrée.
Supposons que l'utilisateur soit Tony et que l'adresse IP de la machine distante soit 10.1.1.2. Exécutez la commande suivante sur le terminal.
ssh [email protected]
Vous trouverez ci-dessous l'exemple de sortie.
Vous devriez maintenant être connecté en toute sécurité, comme indiqué dans la capture d'écran ci-dessus.
Cependant, si votre serveur SSH écoute sur un autre port (supposons 2222). La syntaxe complète de la commande doit être la suivante.
ssh -p
Supposons que l'utilisateur soit Tony et que l'adresse IP de la machine distante soit 10.1.1.2. Exécutez la commande suivante sur le terminal.
ssh -p 2222 [email protected]
Conclusion
C'était donc le tutoriel sur la gestion à distance d'un serveur Linux avec SSH. J'espère que vous l'avez apprécié.