Apprenez à gérer les connexions à distance via SSH
Vous souhaitez gérer une communication à distance sécurisée entre le client et le serveur Linux ? Voici quelques outils de shell sécurisé (SSH) pour gérer les connexions à distance.
Le protocole Secure Shell est un moyen courant de se connecter à une machine distante via des applications client/serveur. Il utilise un ensemble d'outils tels que ssh, scp et sftp, parmi beaucoup d'autres, pour garantir un processus d'authentification sécurisé et une communication chiffrée qui suit. En raison de cela, ces outils remplacent d'autres anciens ensembles d'outils d'exécution de commandes à distance tels que telnet, rcp et rlogin.
Dans ce guide, vous apprendrez comment installer et activer les services serveur/client OpenSSH sur votre machine. Il couvre également toutes les commandes nécessaires (outils SSH) pour accéder et gérer des systèmes à distance et transférer des fichiers entre eux.
Introduction à SSH
Par défaut, la plupart des systèmes Linux incluent les applications client et serveur ssh. Les paquets qui incluent les outils ssh dans les distributions RHEL et Fedora sont openssh, openssh-server et openssh-client. Utilisez la commande grep pour extraire les outils ssh de la liste installée :
yum list installed | grep openssh
Bien qu'Ubuntu n'inclue qu'un paquet openssh-client qui contient également un paquet openssh. Utilisez la commande grep pour lister les paquets openssh dans Ubuntu, comme suit :
sudo dpkg --list | grep openssh
sudo apt-get install openssh-server
Initier/Activer le service SSH
La gestion du service openssh peut varier d'une distribution à l'autre, et irrespective des configurations par défaut, il ne démarre pas automatiquement. Utilisez l'ensemble de commandes suivant pour vous assurer que le service est opérationnel sur votre machine Linux :
systemctl status sshd.service #for Fedora and RHEL
systemctl status ssh #for UbuntuS'il ne fonctionne pas, vérifiez l'état du service comme suit :
systemctl start sshd.service #for Fedora and RHEL
systemctl ssh start #for UbuntuPour démarrer le serveur openssh dès que le système démarre :
systemctl enable sshd.service
systemctl ssh enableComment utiliser les outils de client SSH
Parmi de nombreux autres outils pour utiliser le protocole SSH pour l'accès à distance aux systèmes Linux, les plus fréquemment utilisés sont la commande ssh pour l'exécution de code à distance et la connexion, où scp et rsync sont utiles pour copier un ou plusieurs fichiers entre le client et le serveur.
La section couvre en détail les commandes discutées ci-dessus pour une gestion à distance efficace.
Connexion à distance
SSH est la commande que vous utiliserez le plus souvent pour la configuration à distance de votre serveur Linux exécutant le service sshd. Utilisez la commande ssh pour vérifier si vous pouvez vous connecter à votre serveur Linux pour l'exécution de commandes.
Vous pouvez utiliser une autre machine Linux pour vous connecter à votre serveur, ou vous pouvez vous en faire une idée en le simulant sur votre localhost comme suit :
Pour une connexion à distance à un compte Ubuntu à X.X.X.X (où X.X.X.X est l'adresse IP de l'appareil distant):
ssh ubuntu@X.X.X.XPour la connexion à distance en tant qu'utilisateur local :
ssh localhostSi vous vous connectez pour la première fois au serveur distant, il vous demandera de confirmer la connexion avec le système, entrez oui et saisissez le mot de passe du compte utilisateur.
Après la connexion, vous pouvez continuer avec l'exécution de commandes à distance car elle est similaire à la connexion régulière, la seule différence étant que la communication à distance est cryptée.
Une fois terminé, tapez la commande exit pour terminer la session et revenir à votre système local. Si cela échoue à fermer le shell distant, les touches ~. effectuent également une tâche similaire et affichent 'Connexion à X.X.X.X fermée'.
Exécution à distance
La commande ssh permet d'exécuter des commandes sur le système distant et retourne la sortie sur la machine locale. Par exemple,
La commande suivante s'exécute en tant qu'utilisateur ubuntu sur le serveur distant et renvoie le nom d'hôte :
ssh ubuntu@X.X.X.X hostnamePour exécuter une commande qui inclut des options ou des indicateurs, entourez-la de guillemets doubles comme suit :
ssh ubuntu@X.X.X.X "cat /tmp/new_file"La commande ci-dessus renvoie le contenu du fichier ci-dessus sur votre écran local.
Vous pouvez également exécuter plusieurs commandes sans vous reconnecter à chaque fois en activant le transfert X11 sur votre serveur. Ouvrez le fichier sshd_config dans le répertoire /etc/ssh et définissez X11 Forwarding sur yes comme suit :
Exécutez maintenant les commandes comme suit :
ssh -X ubuntu@X.X.X.X hostname & cat /tmp/new_file/ & exitCopie de fichier via scp et rsync
La commande scp vous permet de transférer/copier des fichiers du système distant vers le système local et vice-versa. Sa fonctionnalité est similaire à celle de la commande rcp, mais avec une communication chiffrée RSA. Quelques exemples suivent.
Copiez le fichier du répertoire /etc/demo de la machine distante vers son dossier /tmp comme suit :
scp ubuntu@X.X.X.X:/home/ubuntu/demo/file /tmp<strong> </strong>Cela permet également la copie récursive, ce qui signifie que vous pouvez fournir la commande avec un répertoire, et elle copie tous les fichiers/dossiers dans la hiérarchie vers un autre répertoire local.
scp -r localhost:/home/ubuntu/ /tmpVous pouvez également utiliser la commande scp pour la sauvegarde de fichiers et de répertoires, mais rsync est un meilleur utilitaire de sauvegarde pour plusieurs raisons :
- scp a une incapacité à conserver les permissions de fichiers/répertoires et la date/heure.
- Il est également incapable d'identifier les fichiers et répertoires déjà copiés.
Maintenant, énumérez le contenu des répertoires ci-dessus pour voir les permissions des fichiers et la date de création, comme suit :
ls -l /etc/demo /tmp/demo
Répétez la commande scp ci-dessus et relistez les répertoires pour vérifier si cela remplace le fichier/dossier déjà copié à partir de son horodatage :
L'option -p pour la commande scp peut aider à préserver l'horodatage ou les permissions d'écriture, mais elle remplace tout de même les fichiers déjà copiés. Pour surmonter ces inconvénients, utilisez rsync comme outil de sauvegarde. Supprimez d'abord les fichiers dans le répertoire /tmp pour continuer avec l'exemple ci-dessous. Utilisez la commande rsync avec l'option -a pour une archivage récursive et l'option -v pour le mode verbeux pour copier les fichiers de /home/ubuntu/demo vers le répertoire /tmp, comme suit :
rsync -av ubuntu@X.X.X.X:/home/ubuntu/demo /tmp
Listez le répertoire /tmp pour noter comment il préserve l'heure de création des fichiers ou des répertoires.
Enfin, relancez la commande rsync pour vérifier qu'elle ne copie aucun fichier.
Faire connaissance avec SSH
L'article est un guide sur le protocole le plus largement utilisé pour la gestion à distance des serveurs Linux. Nous affichons comment utiliser les commandes SSH les plus importantes avec quelques astuces pour faciliter la tâche de copie et de gestion des fichiers.
Commencer à comprendre les commandes/outils SSH et leur fonctionnalité peut changer votre vision de la gestion des systèmes/serveurs car cela débloque les capacités non seulement de SSH mais aussi du terminal Linux. C'est un outil puissant qui offre une sécurité considérable, ainsi que d'autres fonctionnalités trop avancées pour être couvertes dans un seul guide.












