Secure Shell (SSH) est un outil essentiel pour les administrateurs système, les développeurs et toute personne gérant des serveurs distants. Grâce à SSH, vous pouvez vous connecter en toute sécurité à une machine distante, exécuter des commandes, transférer des fichiers et effectuer des tâches administratives. Dans cet article, nous allons explorer 10 commandes SSH courantes que vous devriez utiliser dès aujourd’hui.

1. Connexion à un serveur distant

La commande SSH la plus élémentaire est utilisée pour se connecter à un serveur distant :

ssh user@remote_host

Remplacez user par votre nom d’utilisateur et remote_host par l’adresse IP ou le nom de domaine du serveur.

2. Se connecter avec un port spécifique

Par défaut, SSH utilise le port 22, mais vous pouvez spécifier un port différent si nécessaire :

ssh -p 2222 user@remote_host

Ceci est utile si le serveur SSH est configuré pour fonctionner sur un port non standard.

3. Utilisation de clés SSH pour l’authentification

Au lieu d’utiliser un mot de passe, vous pouvez vous authentifier à l’aide d’une clé SSH :

ssh -i /path/to/private_key user@remote_host

La génération d’une clé SSH peut se faire avec :

ssh-keygen -t rsa -b 4096

Cela améliore la sécurité et élimine la nécessité d’entrer un mot de passe à chaque fois.

4. Exécution de commandes sur un serveur distant

Vous pouvez exécuter une seule commande sur un serveur distant sans ouvrir de session interactive :

ssh user@remote_host "ls -l /var/www/html"

Ceci est utile pour des tâches administratives rapides.

5. Copier des fichiers avec SCP

Le protocole de copie sécurisée (SCP) vous permet de transférer des fichiers entre des machines locales et distantes :

scp file.txt user@remote_host:/remote/directory/

Pour copier un répertoire de manière récursive :

scp -r /local/répertoire user@remote_host:/remote/répertoire/

6. Copier des fichiers avec rsync

Une alternative à SCP est rsync, qui est plus efficace pour synchroniser les fichiers :

rsync -avz /local/répertoire user@remote_host:/remote/répertoire

Il minimise le transfert de données en n’envoyant que les différences entre les fichiers.

7. Configuration du tunnel SSH

Le tunnel SSH vous permet d’acheminer le trafic réseau en toute sécurité. Pour créer un tunnel local :

ssh -L 8080:localhost:80 user@remote_host

Cette opération transfère le trafic de votre port local 8080 vers le port 80 du serveur distant.

8. Tunnel SSH inversé

Le tunneling inverse permet à un serveur distant d’accéder à votre machine locale :

ssh -R 9090:localhost:22 user@remote_host

Cette méthode est utile pour accéder à un système situé derrière un pare-feu.

9. Multiplexage des connexions SSH

Si vous vous connectez fréquemment au même serveur, vous pouvez accélérer SSH en activant le multiplexage :

ssh -o ControlMaster=yes -o ControlPath=~/.ssh/socket user@remote_host

Cela permet de réduire la charge d’authentification pour plusieurs sessions SSH.

10. Terminer une session SSH

Pour fermer une session SSH, il suffit de taper :

exit

Ou utilisez la séquence d’échappement :

~.

Ceci est utile lorsque la connexion ne répond plus.