Utilisation et configuration de la commande SSH de base dans Linux

Utilisation et configuration de la commande SSH de base dans Linux

Brief: Dans ce guide, nous discuterons des cas d'utilisation courants de SSH. Nous discuterons également des configurations SSH couramment utilisées qui peuvent être utilisées dans la vie quotidienne pour augmenter votre productivité.

Enveloppe de protection (Ssh) est un protocole réseau largement adopté, qui nous permet d'interagir avec des hôtes distants de manière sécurisée. Il assure la sécurité en cryptant toutes les communications entre eux.

Comment utiliser la commande ssh dans Linux

Dans cette section, nous discuterons de certains des cas d'utilisation populaires de la Ssh protocole.

Connectez-vous à l'hôte Linux distant

Il existe différentes façons d'interagir avec des hôtes Linux distants à l'aide de protocoles tels que telnet, FTP, netcat, etc. Cependant, ceux-ci ne sont pas sûrs en raison de l'absence de cryptage. Nous pouvons utiliser le protocole SSH pour permettre une communication sécurisée entre les hôtes.

Nous devons utiliser un Ssh client pour interagir avec l'hôte distant. Il existe de nombreux clients GUI et CLI disponibles pour Linux. Cependant, tout au long de ce guide, nous utiliserons un utilitaire de ligne de commande appelée ssh. Par défaut, le ssh L'utilitaire est disponible sur la plupart des distributions Linux.

La syntaxe de la commande ssh est la suivante:

$ ssh [Options] [Commandes] [args] 

Ici, les crochets ([]) représentent les arguments facultatifs tandis que les supports angulaires () représenter les arguments obligatoires.

Connectons-nous à l'hôte distant en utilisant le ssh client:

$ ssh -l racine 192.168.19.130 

Dans cet exemple, nous avons spécifié le nom de connexion à l'aide du -l L'option et la destination est 192.168.19.130. La connexion SSH est établie après être entré dans le mot de passe correct. Maintenant, nous pouvons exécuter les commandes de l'hôte distant tout comme le système local.

# nom d'hôte 

Pour terminer la session, nous pouvons utiliser le sortie commande ou ctrl + d combinaison clé.

SSH se connecter à l'hôte Linux distant

Il est important de noter que nous devons nous authentifier avec l'hôte distant pour chaque nouvelle session. Pour éviter de saisir les mots de passe à chaque fois, nous pouvons configurer une connexion sans mot de passe SSH.

Exécuter des commandes sur l'hôte distant

Dans la section précédente, nous avons vu comment établir une connexion avec un hôte distant, qui ne convient que lorsque nous allons utiliser l'hôte distant pendant une durée plus longue. Parfois, nous avons juste besoin d'exécuter une ou deux commandes sur l'hôte distant. Dans de tels cas, nous pouvons exécuter ces commandes sans créer de session à long terme.

Exécutons la commande hostname sur l'hôte distant:

$ ssh -l racine 192.168.19.130 Nom d'hôte 

De la même manière, nous pouvons exécuter plusieurs commandes sur une machine Linux distante:

$ ssh -l racine 192.168.19.Nom hôte 130; Pwd ' 
Commandes SSH Run dans Linux distant

Il est important de noter que les commandes doivent être enfermées dans les citations et séparées par le semi-colon (;) personnage. Si vous souhaitez exécuter des commandes sur plusieurs hôtes Linux distants, lisez notre article - PSSH - Exécutez les commandes sur plusieurs hôtes Linux distants.

Exécuter le script sur l'hôte distant

Semblable aux commandes, nous pouvons également exécuter un script local sur l'hôte distant. Comprenons cela avec un exemple.

Tout d'abord, créez un script de shell simple sur une machine locale avec des autorisations exécutables dessus:

$ script Cat.sh hostname pwd 

Maintenant, exécutons-le sur l'hôte distant:

$ ssh [Protégé par e-mail] 'bash -s' < ./script.sh 

Dans cet exemple, nous avons utilisé le -s Option de la bash pour lire le script à partir de l'entrée standard.

Script SSH Run dans Linux distant

Copier des fichiers entre les hôtes

Nous travaillons très souvent avec les fichiers et les répertoires. Une opération courante que les utilisateurs effectuent consiste à copier des répertoires et des fichiers. Tout comme les machines locales, nous pouvons copier des fichiers et des répertoires entre les hôtes distants à l'aide de la commande SCP, qui copie les fichiers en toute sécurité à l'aide du protocole SSH.

Copie le scénario.shot fichier à la / tmp Répertoire de l'hôte distant:

$ script SCP.sh [e-mail protégé]: / tmp 

Maintenant, vérifiez que le fichier a été copié:

$ ssh [Protégé par e-mail] 'LS / TMP / Script.sh ' 
SSH Copier les fichiers à Linux distant

De la même manière, nous pouvons utiliser la commande SCP pour copier les répertoires. Cependant, nous devons utiliser le -r Option avec la commande.

Activer la compression pour SSH

Ssh prend en charge la compression des données à l'aide du gzip Algorithme de compression, qui comprime tous les flux de données possibles tels que STDIN, STDOUT, STDERR, etc. Cette option est très pratique tout en utilisant des connexions réseau lentes.

Nous pouvons activer la compression sur SSH en utilisant le -C option:

$ ssh -c -l root 192.168.19.130 'nom d'hôte' 
SSH Activer la compression

Activer le mode verbeux pour SSH

Les utilisateurs de Linux ont souvent besoin de déboguer les sessions SSH pour enquêter sur diverses problèmes de connexion SSH et de configuration. Dans de tels cas, nous pouvons activer le mode verbeux qui imprime les journaux de débogage de la session en cours.

Activons le mode verbeux en utilisant le -V option:

$ ssh -v -l root 192.168.19.130 Nom d'hôte 

En plus de cela, nous pouvons augmenter le niveau de verbosité en utilisant le multiple -V options.

  • -V - Définit le niveau de verbosité à 1 et fournit des détails sur les activités côté client.
  • -vv - Définit le niveau de verbosité à 2 et fournit des détails sur les activités côté client et serveur.
  • -vvv - Définit le niveau de verbosité sur 3 et fournit des informations plus détaillées sur les activités côté client et serveur.

Le niveau maximal de verbosité pris en charge par SSH est 3. Voyons cela en action:

$ ssh -vvv -l root 192.168.19.130 Nom d'hôte 
Mode Verbose SSH ENBALE

Dans l'exemple ci-dessus, débogue1 représente le message de débogage activé par le niveau de verbosité 1. De la même manière, débogage2 et débogue3 représentent les messages de débogage activés par les niveaux de verbosité 2 et 3 respectivement.

Séquences d'évasion dans SSH

Nous pouvons utiliser des séquences d'échappement avec le Ssh Pour gérer les séances de terminal client. Discutons des séquences d'évasion couramment utilisées avec les cas d'utilisation appropriés.

Suspender SSH Session

Parfois, nous devons effectuer quelques activités sur la machine locale sans terminer la session SSH actuelle. Dans un tel scénario, nous pouvons suspendre la session en cours ~ + ctrl + z séquence clé.

Tout d'abord, connectez-vous à l'hôte distant et exécutez le nom d'hôte commande:

$ ssh -l racine 192.168.19.130 # Nom d'hôte 

Ensuite, pour suspendre la session actuelle en premier type Tilde (~) caractère puis appuyez sur le ctrl + z clés. Il est important de noter que le tilde (~) Le caractère ne sera pas affiché sur le stdout jusqu'à ce que nous appuyons sur ctrl + z.

Maintenant, vérifions que la session a été suspendue:

$ Jobs 

Ici, nous pouvons voir que la session SSH actuelle fonctionne en arrière-plan.

Reprenons à nouveau la session en utilisant le FG commande et exécuter le nom d'hôte commande:

$ fg% 1 
Exécutez la session SSH en arrière-plan
Terminer la session SSH congelée

Je suis sûr que vous devez avoir vu les sessions SSH gelées, qui se produisent lorsque la session est interrompue par un réseau instable. Ici, nous ne pouvons pas abandonner la session en utilisant le sortie commande. Cependant, nous pouvons le terminer en utilisant le "~ + ." séquence clé.

Tout d'abord, connectez-vous à l'hôte distant:

$ ssh -l racine 192.168.19.130 

Utilisez maintenant le "~ + ." combinaison clé pour résilier la session en cours.

Terminer la session SSH

Dans cet exemple, nous pouvons voir que Ssh Affiche le message - Connexion à 192.168.19.130 fermé.

Liste prise de séquence d'évacuation prise en charge

Une chose intéressante est qu'il y a une séquence d'évasion pour énumérer toutes les séquences d'évasion prises en charge. Nous pouvons utiliser le "~ + ?" Séquence d'échappement pour répertorier les séquences d'évasion prises en charge:

Séquences d'évasion prises en charge

Ici, nous devons appuyer sur la touche Entrée pour sortir du menu d'aide.

Comment configurer SSH dans Linux

Dans cette section, nous discuterons de la configuration côté serveur pour durcir le serveur SSH. SSH Server stocke toute sa configuration dans / etc / ssh / sshd_config déposer. Il est important de noter que l'accès à l'utilisateur racine est nécessaire pour mettre à jour la configuration SSH.

Afficher la bannière SSH

En tant que meilleure pratique, nous devons toujours afficher la bannière avant d'établir une connexion SSH. Dans certains cas, il décourage les utilisateurs non autorisés d'accès aux hôtes distants. Voyons comment activer ce réglage étape par étape.

Tout d'abord, créez un fichier texte sur un serveur distant avec un message d'avertissement:

# vi / etc / bannière.SMS 

Ensuite, ajoutez le message de la bannière suivante:

**************************************************** ******************* Avertissement !!! Vous essayez de vous connecter à Techmint.serveur de com. Toutes les activités de ce serveur sont surveillées. Terminez la session immédiatement si vous n'êtes pas un utilisateur autorisé. **************************************************** ***************** 

Ensuite, ouvrez le / etc / ssh / sshd_config fichier et spécifier le fichier avec le Bannière directif:

Bannière / etc / bannière.SMS 

Maintenant, redémarrez le SSHD Service et résilier la session à l'aide du sortie commande:

# systemctl redémarrer sshd # exit 

Enfin, vérifiez la bannière en vous connectant à l'hôte distant:

$ ssh -l racine 192.168.19.130 
Afficher la bannière SSH

Ici, nous pouvons que le serveur affiche correctement la bannière SSH.

Désactiver la connexion racine SSH

Jusqu'à présent, nous avons utilisé l'utilisateur racine pour accéder à l'hôte distant. Cependant, cela est contraire au principe du moindre privilège. Dans un environnement de production, l'accès des utilisateurs racinaires est toujours limité pour améliorer la sécurité.

Nous pouvons utiliser le Permatlogine Directive pour désactiver la connexion des utilisateurs racinaires.

Tout d'abord, ouvrez le / etc / ssh / sshd_config fichier et utiliser l'option Non avec le Permatlogine directif:

Permutrootlogine no 

Maintenant, redémarrez le SSHD Service et résilier la session à l'aide du sortie commande:

# systemctl redémarrer sshd # exit 

Enfin, vérifiez cela en créant une nouvelle session SSH:

$ ssh -l racine 192.168.19.130 
Désactiver la connexion racine SSH

Ici, nous pouvons observer que nous ne pouvons pas nous connecter à l'hôte distant avec l'utilisateur racine. Pour permettre à la connexion de l'utilisateur racine, nous pouvons utiliser l'option Oui avec la même directive.

Modifier le port SSH par défaut

Par défaut, Ssh utilise le port TCP 22. Cependant, nous pouvons configurer SSH pour s'exécuter sur un autre port I.e. 8088.

Tout d'abord, ouvrez le / etc / ssh / sshd_config fichier et utiliser le 8088 valeur avec le Port directif:

Port 8088 

Ensuite, redémarrez le service SSHD et terminez la session:

# systemctl redémarrer sshd # exit 

Maintenant, connectons à l'hôte distant:

$ ssh -p 8088 -l racine 192.168.19.130 
Modifier le port SSH

Dans cet exemple, nous avons utilisé le -p Option pour spécifier le numéro de port.

Dans certains cas, nous devons effectuer quelques autres étapes pour permettre la communication sur un port non défaut. Tels que l'identification des ports disponibles, la mise à jour des règles de pare-feu, les paramètres de Selinux, etc.

Dans cet article, nous avons discuté du protocole SSH et de ses cas d'utilisation courants. Ensuite, nous avons discuté de quelques options communes. Enfin, nous avons discuté de certains paramètres pour sécuriser le serveur SSH.

Connaissez-vous toute autre meilleure utilisation de commande SSH dans Linux? Faites-nous savoir votre point de vue dans les commentaires ci-dessous.