GNU/Linux >> Tutoriels Linux >  >> Linux

Installation et configuration d'OpenSSH sur Ubuntu et les distributions basées sur Debian

Si vous souhaitez activer SSH sur le bureau Ubuntu , utilisez la commande suivante :

sudo apt install openssh-client

Si vous souhaitez activer SSH sur le serveur Ubuntu , utilisez la commande suivante :

sudo apt install openssh-server

Lisez le reste de l'article pour des informations plus détaillées.

Chaque administrateur système et développeur a éprouvé le besoin de se connecter à distance aux systèmes pour accélérer l'administration et le débogage.

Dans un environnement informatique, presque toutes les tâches d'administration système sont aujourd'hui effectuées via des connexions à distance.

Et pas seulement les administrateurs système, même les utilisateurs normaux ont parfois besoin de se connecter à distance aux serveurs.

Alors, comment se connecter à distance à un système Linux ? Il existe plusieurs outils disponibles pour les connexions à distance, mais lorsqu'il s'agit de Linux, SSH est le choix le plus populaire.

SSH, abréviation de secure shell, est un protocole qui permet de se connecter à distance en toute sécurité d'un ordinateur à un autre.

Maintenant, la question est de savoir comment activer SSH sur Ubuntu ou Debian ou sur toute autre distribution Linux que vous utilisez ?

N'oubliez pas que SSH n'est qu'un protocole et que ce protocole peut être implémenté via un certain nombre d'outils tels que lsh, Dropbear, etc., mais l'outil le plus largement utilisé pour SSH est le logiciel open source OpenSSH.

Dans ce didacticiel, vous verrez comment installer OpenSSH et le configurer pour activer SSH sur les distributions Linux basées sur Ubuntu et Debian. Les étapes mentionnées s'appliquent aux versions de bureau et de serveur d'Ubuntu/Debian.

Je conseille également la lecture de cet article pour se familiariser avec les bases de SSH.

Activer SSH sur Ubuntu et Debian avec OpenSSH

Comme je l'ai mentionné plus tôt, OpenSSH est le logiciel permettant de créer des connexions SSH. Il écoute sur un port et authentifie les utilisateurs entrants et crée un nouveau shell pour l'utilisateur distant.

Pour que SSH fonctionne, un serveur ssh doit être exécuté sur le système distant auquel l'utilisateur doit se connecter. Vous devez également disposer d'un client ssh dans le système local à partir duquel l'utilisateur se connectera au système distant.

OpenSSH fournit ces deux fonctionnalités. Il existe openssh-client pour les utilisateurs finaux et openssh-server pour les serveurs distants.

Avant d'installer OpenSSH, vous devez vérifier si SSH est déjà installé et en cours d'exécution sur votre système.

Vérifier si SSH est déjà activé et en cours d'exécution

Il est plus probable que SSH soit déjà activé sur votre système. Pour vérifier, exécutez la commande suivante sur le serveur distant ou sur le système de l'utilisateur final :

ps -aux | grep ssh

Si SSH est activé, vous devriez voir une information sur l'agent SSH sur votre bureau :

ps -aux | grep ssh

abhishek  1736  0.0  0.0  11304    36 ?        Ss   08:18   0:00 /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu

abhishek 10462  0.0  0.0  21536  1044 pts/0    S+   10:15   0:00 grep --color=auto ssh

Sur le serveur, vous devriez voir les informations sur un démon SSH en cours d'exécution :

ps -aux | grep ssh

root       920  0.0  0.2  72296  6028 ?        Ss    2018   0:17 /usr/sbin/sshd -D

root     22708  0.0  0.3 108172  7364 ?        Ss   05:13   0:00 sshd: [email protected]/0

root     22873  0.0  0.0  14856  1068 pts/0    S+   05:14   0:00 grep --color=auto ssh

Si vous ne voyez pas une sortie similaire à celles mentionnées ci-dessus, vous n'avez pas SSH en cours d'exécution sur votre système. Il est temps d'installer OpenSSH.

Installer OpenSSH sur Ubuntu et Debian

Une note rapide sur openssh-client et openssh-server avant de poursuivre l'installation d'OpenSSH.

openssh-client : C'est le package dont vous avez besoin si vous souhaitez vous connecter à un système Linux distant à l'aide de SSH. C'est ce dont vous avez besoin en tant qu'utilisateur final/utilisateur de bureau.

openssh-server : C'est le package dont vous avez besoin si vous souhaitez autoriser les connexions à distance via SSH à votre système. C'est ce dont vous avez besoin sur votre serveur Linux.

Notez que l'installation de openssh-server vous permet également de vous connecter à distance à d'autres systèmes via SSH. En d'autres termes, openssh-server consiste en openssh-client. Mais si vous n'êtes qu'un utilisateur final avec un bureau Linux, il n'est (généralement) pas nécessaire d'installer openssh-server et d'autoriser la connexion à distance à votre système.

Maintenant que vous connaissez la différence entre les deux, il est temps de voir comment les installer.

Notez que pour installer OpenSSH sur Ubuntu ou Debian, vous devez avoir les droits sudo/root. Si vous ne disposez pas de cette autorisation, contactez votre administrateur système. Vous pouvez également lire cet article sur la création d'utilisateurs sudo.

Installation d'OpenSSH pour les ordinateurs de bureau ou les utilisateurs finaux

Si vous souhaitez simplement vous connecter à d'autres systèmes distants via SSH, vous devez installer le package openssh-client à l'aide de la commande suivante :

sudo apt update
sudo apt install openssh-client

Une fois que vous avez installé ssh sur votre système, vous êtes prêt à l'utiliser. Veuillez vous référer à cet article détaillé pour savoir comment utiliser SSH.

Installer OpenSSH pour les serveurs

Si vous configurez un serveur Ubuntu/Debian, vous devez installer le paquet openssh-server afin que d'autres utilisateurs distants puissent se connecter à votre système.

sudo apt update
sudo apt install openssh-server

Une fois que vous avez installé openssh-server, il est temps d'apprendre à le modifier et à le configurer selon vos besoins.

Contrôle du démon SSH sshd (pour les serveurs)

Vous aurez le démon SSH nommé sshd installé et activé pour être démarré automatiquement au redémarrage par défaut. systemctl est l'une des nombreuses façons de contrôler le démon SSH. Pour en savoir plus sur systemctl , veuillez vous référer à cet article.

Démarrer le service sshd

Le service peut être démarré en émettant simplement :

sudo systemctl start sshd

Arrêter le service sshd

Le service peut être arrêté de la même manière :

sudo systemctl stop sshd

Redémarrer le service sshd

Si vous souhaitez que le service sshd soit arrêté et démarré (généralement nécessaire en cas de changement de configuration vers le service sshd), vous pouvez simplement utiliser cette commande :

sudo systemctl restart sshd

Activer automatiquement SSH sur Ubuntu à chaque démarrage

Certains services doivent être démarrés au redémarrage pour éviter une interaction manuelle et s'ils sont très fréquemment utilisés. C'est très essentiel pour des services comme Apache, mongod, mysqld, sshd dans les serveurs.

Si vous souhaitez activer ce démarrage automatique pour sshd, utilisez :

sudo systemctl enable sshd

Désactiver le démarrage automatique SSH au redémarrage

Si vous ne voulez pas que sshd soit démarré automatiquement au redémarrage, utilisez

sudo systemctl disable sshd

Ci-dessus, quatre conseils sont nécessaires chaque fois que vous apportez une modification au service ssh, comme le changement de port. Vous pouvez utiliser les commandes ci-dessus pour gérer n'importe quel service (comme mysqld, mongod, apache) avec le nom de service sshd remplacé par le service cible.

Astuce  :Vous pouvez utiliser la commande nohup pour continuer à exécuter des commandes même si votre connexion SSH se déconnecte.

Configuration de SSH (pour les serveurs)

À partir de maintenant, notre service ssh écoutera sur le port 22 et sera prêt à authentifier n'importe quel utilisateur (également root) une fois qu'une clé est stockée.

Si vous souhaitez modifier l'une des configurations telles que le port pour écouter les connexions, vous pouvez modifier le fichier "/etc/ssh/sshd_config ” en ajoutant, supprimant, commentant ou décommentant les lignes puis en redémarrant le service sshd.

Il existe de nombreuses options à configurer. J'ai créé une liste de configurations qui seront probablement nécessaires.

1. Changer le port SSH par défaut

Habituellement, le service sshd écoute sur le port TCP 22. Si vous le souhaitez, vous pouvez changer le port SSH pour dire 5678 en ajoutant/modifiant la ligne suivante dans /etc/ssh/ssh_config.

Port 5678

Redémarrez le service pour voir le changement immédiatement.

2. Désactiver la connexion root via SSH

Autoriser les utilisateurs root à s'authentifier par ssh n'est pas une bonne idée pour des raisons de sécurité. sudo les utilisateurs peuvent être connectés à distance mais pas root en tant que racine est au sommet de la chaîne alimentaire de sécurité.

La connexion racine peut être désactivée en ajoutant (si elle n'est pas déjà présente) la ligne suivante et en redémarrant le service.

PermitRootLogin no

Si la ligne est déjà présente, assurez-vous qu'elle n'est pas commentée.

3. Autoriser l'authentification basée sur une clé SSH sur

Vous pouvez autoriser l'authentification basée sur la clé ssh afin que l'utilisateur final n'ait pas à saisir le mot de passe tout le temps. Il suffit d'utiliser le ssh [email protected] pour se connecter au système distant.

Pour cela, vous devez configurer SSH pour autoriser l'authentification par clé publique :

PubkeyAuthentication yes 

Si la ligne est déjà présente, assurez-vous qu'elle n'est pas commentée.

Maintenant, si vous souhaitez autoriser un système particulier à se connecter via une clé publique, vous devez ajouter cette clé publique de l'utilisateur final dans le fichier .ssh/authorized_keys .

Vous pouvez créer des clés ssh (clé publique et clé privée) à l'aide de ssh-keygen . Pour en savoir plus sur la génération de clés, consultez cette excellente ressource.

Vous pouvez transférer la clé publique de l'utilisateur final vers le serveur distant par tout moyen que vous préférez. Vous pouvez utiliser la commande scp si vous le souhaitez ou simplement l'obtenir via FTP. C'est vraiment à vous de décider.

Les trois ci-dessus sont les plus nécessaires, mais si vous souhaitez modifier davantage, veuillez vous référer à la page de manuel de sshd_config .

Conclusion

Je pense que c'est un assez bon matériel de lecture pour savoir comment activer SSH sur Ubuntu/Debian et comment configurer SSH sur votre serveur pour les connexions à distance.

Dans un article connexe, vous pouvez vous référer à cet article détaillant une erreur SSH qui survient en raison de la copie de la clé publique entre les systèmes.

Si vous avez trouvé cet article utile, partagez-le avec vos amis. Si vous avez des suggestions ou des commentaires ou si vous pensez que j'ai raté quelque chose, n'hésitez pas à laisser un commentaire ci-dessous.


Linux
  1. Installation et configuration de Php et Nginx sur Ubuntu 20.04

  2. Linux - Configurer, compiler et installer un noyau Linux personnalisé ?

  3. Installation et configuration de vsFTPD

  4. Configurer SFTP et empêcher SSH sur Ubuntu 20.04

  5. CentOS / RHEL :Installation et configuration d'ASMLib

Comment répertorier les packages installés sur les distributions Linux basées sur Ubuntu et Debian

Guide complet de configuration de SSH dans Ubuntu

Installation et configuration d'OpenVPN (Windows)

Installation et configuration d'OpenVPN (Ubuntu)

Installation et configuration d'OpenVPN (CentOS6)

Changez votre port SSH dans Ubuntu et Debian