Utilisation et configuration de la commande SSH de base dans Linux
- 2768
- 94
- Emilie Colin
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é.
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.
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ôteMode 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% 1Exé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.
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:
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.130Afficher 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.130Dé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.130Modifier 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.
- « Activer le mode de débogage dans SSH pour résoudre les problèmes de connectivité
- Exemples de commande Linux RMDIR pour les débutants »