Gérez efficacement les connexions SSH à distance avec ces commandes Linux

Si vous exécutez un ou plusieurs serveurs distants, vous passez généralement du temps à vous connecter tout au long de la journée.

Mais il ne doit pas en être ainsi. Il est temps que vous appreniez à vous connecter efficacement via SSH avec uniquement un alias, à transférer des fichiers ou des répertoires uniques, à exécuter des commandes SSH à distance et à monter sans effort des serveurs distants sur des répertoires locaux.

Fichier de configuration SSH

Un gain de temps énorme est le fichier de configuration SSH situé dans ~ / .ssh / config . Commencez par créer un répertoire pour stocker toutes les clés SSH que vous utilisez pour vous connecter aux serveurs avec la commande:

 mkdir -m 0600 $HOME/.ssh_keys

Copiez maintenant tous vos fichiers de clés SSH dans ce répertoire (par exemple clienta.pem, clientb.pem, etc.). Ensuite, ouvrez le fichier ~ / .ssh / config dans un éditeur de texte en exécutant la commande:

 nano ~/.ssh/config

Voici un exemple d'entrée qui établira une connexion SSH avec un serveur distant:

 host clienta
 hostname 124.58.2276.80
 user ubuntu
 IdentityFile ~/.ssh_keys/clienta.pem

Ajoutez des sections de lignes comme ci-dessus au fichier ~ / .ssh / config , une pour chaque serveur que vous désirez. Ensuite, enregistrez et fermez le fichier en appuyant sur Ctrl + X et suivez l'invite. Une fois enregistré, vous pouvez maintenant vous connecter à n'importe quel serveur via SSH à partir de n'importe quel répertoire du terminal avec la simple commande:

 ssh clienta

Cela vous connectera instantanément au serveur avec les informations sous l'hôte client que vous avez spécifié dans le fichier ~ / .ssh / config .

Transférer des fichiers avec Scp / Rcp

Sans créer de session de connexion persistante, vous pouvez facilement télécharger des fichiers ou des répertoires uniques sur un serveur distant avec la commande scp , tels que:

 scp report.pdf clienta:~/

La commande ci-dessus va télécharger le fichier report.pdf de votre ordinateur local vers le répertoire personnel du serveur clienta que vous avez défini dans la section ci-dessus. Vous pouvez télécharger dans un répertoire autre que le répertoire de base tel que:

 scp about.html clienta:/home/clienta/public_html

Ce qui précède va télécharger le fichier about.html dans le répertoire / home / client / public_html sur le serveur clienta distant. Il est également possible de télécharger des répertoires entiers en utilisant l'option -r telle que:

 scp -r Documents clienta:~/docs

Cela téléchargera l'intégralité du répertoire ~ / Documents de votre ordinateur local vers le répertoire ~ / docs du serveur distant.

Téléchargement de fichiers

De même, vous pouvez télécharger des fichiers ou des répertoires sur votre ordinateur local sans créer de session de connexion persistante à l'aide de la commande rcp telle que:

 rcp clienta:~/public_html/about.html myproject/about.html

Ce qui précède téléchargera le fichier public_html / about.html à partir du serveur clienta distant et le placera dans le fichier projects / about.html sur votre ordinateur local.

Exécuter les commandes SSH à distance

Un autre conseil rapide est que vous pouvez exécuter des commandes Linux uniques sur un serveur distant sans session de connexion persistante, telles que:

 ssh clienta ls

Ce qui précède exécutera la commande ls sur le serveur clienta> distant et listera tous les fichiers / répertoires sans vous garder connecté au serveur. Par exemple, si vous souhaitez redémarrer un serveur, vous pouvez utiliser:

 ssh clienta /sbin/shutdown -rf now

Répertoire local / bin

Développons cela en permettant un montage facile sur des serveurs distants en créant un répertoire / bin / local sur notre compte utilisateur. Ouvrez le terminal sur votre ordinateur et créez un répertoire / bin / en exécutant la commande:

 mkdir -m 0755 ~/bin

Ensuite, ouvrez le fichier ~ / .profile dans un éditeur de texte avec la commande:

 nano $HOME/.profile

Faites défiler jusqu'au bas du fichier et ajoutez les lignes suivantes en les copiant dans votre presse-papiers, puis dans le terminal en appuyant sur Ctrl + Maj + V :

 if [ -d "$HOME/bin" ] ; then
 PATH="$HOME/bin:$PATH"
 fi

Enregistrez et fermez le fichier en appuyant sur Ctrl + X et suivez l'invite. Cela enregistrera le fichier .profile , qui vérifiera le répertoire local / bin / nouvellement créé pour toutes les commandes que vous essayez d'exécuter.

Ajout de commandes de montage à distance

Tout d'abord, vérifiez et voyez si sshfs est installé sur votre ordinateur avec la commande:

 sshfs --version

Si cela imprime la version actuelle de sshfs , vous êtes prêt. Sinon, si vous recevez une erreur «commande introuvable», vous pouvez installer sshfs avec la commande suivante:

 sudo apt-get -y install sshfs

Créez maintenant un répertoire / mnt / qui contiendra tous les répertoires montés sur nos serveurs distants. Dans le terminal, exécutez les commandes telles que:

 mkdir -m 0755 ~/mnt
 mkdir -m 0755 ~/mnt/clienta
 mkdir -m 0755 ~/mnt/clientb

Continuez à créer un sous-répertoire pour chaque serveur distant sur lequel vous pouvez éventuellement monter. Ensuite, créons les commandes shell que nous allons exécuter, et par exemple, pour le serveur clienta, ouvrez un fichier en exécutant la commande suivante dans le terminal:

 nano ~/bin/mount_clienta

Modifiez la ligne ci-dessous si nécessaire avec les informations de serveur appropriées, puis copiez-la et collez-la dans l'éditeur de texte vide du terminal en appuyant sur Ctrl + Maj + V :

 #!/bin/bash
 sshfs -o IdentityFile=~/.ssh_keys/clienta.pem [email protected]:/var/www ~/mnt/clienta

Enregistrez et fermez le fichier en appuyant sur Ctrl + X , puis suivez les invites pour fermer le fichier. Enfin, modifiez les autorisations du fichier pour qu'il soit exécutable en exécutant la commande:

 chmod 0755 ~/bin/mount_clienta

Maintenant, chaque fois que vous avez besoin de monter sur le serveur distant de clienta pour transférer des fichiers vers / depuis celui-ci, à partir de n'importe quel répertoire du terminal, vous pouvez simplement exécuter la commande:

 mount_clienta

Le répertoire sur votre ordinateur local à ~ / mnt / clienta sera maintenant monté dans le répertoire / var / www du serveur distant. Vous pouvez commencer à copier des fichiers vers et depuis le répertoire comme vous le feriez pour n'importe quel répertoire local, et les opérations nécessaires se produiront sur le serveur distant.

Gestion des connexions plus efficace

Espérons que les conseils ci-dessus vous ont aidé à rationaliser et à rendre plus efficace la gestion de vos connexions aux serveurs distants. Dans cet article, vous avez tout appris sur le fichier ~ / .ssh / config vous permettant de vous connecter via SSH avec seulement un alias, de transférer des fichiers / répertoires uniques, d'exécuter des commandes SSH distantes et de monter facilement un répertoire local sur des serveurs distants.