20 commandes SSH courantes que vous devriez utiliser aujourd’hui
SSH (Secure Shell) est un protocole largement utilisé pour accéder à des serveurs distants en toute sécurité. Il permet de gérer et d’interagir avec des systèmes distants par le biais d’une connexion cryptée. La maîtrise des commandes SSH de base peut considérablement améliorer votre productivité et faciliter la gestion des serveurs distants. Vous trouverez ci-dessous 20 commandes SSH courantes que tout administrateur système, développeur ou toute personne travaillant avec des serveurs devrait connaître.
1. Connexion SSH de base
Cette commande est utilisée pour se connecter à un serveur distant via SSH.
- Remplacez nom d’utilisateur par votre nom d’utilisateur et hôte_à_distance par l’adresse IP ou le nom de domaine du serveur.
Exemple :
2. Spécifier un port
Par défaut, SSH utilise le port 22. Si votre serveur utilise un port différent, utilisez l’option -p pour spécifier le port.
Exemple :
3. Copier des fichiers d’un serveur local vers un serveur distant à l’aide de scp
Utilisez scp (secure copy) pour transférer des fichiers de votre machine locale vers un serveur distant.
Exemple :
4. Copier des fichiers d’un serveur distant vers un serveur local à l’aide de scp
Pour télécharger des fichiers d’un serveur distant vers votre machine locale :
Exemple :
5. Copier des répertoires de manière récursive avec scp
Pour copier des répertoires entiers (y compris des sous-répertoires), utilisez l’option -r avec scp.
Exemple :
6. Exécuter des commandes sur un serveur distant
Vous pouvez exécuter une commande sur un serveur distant sans ouvrir de session SSH interactive.
Exemple :
7. Utiliser l’authentification par clé SSH
Pour éviter de saisir des mots de passe à chaque fois, vous pouvez utiliser l’authentification par clé SSH.
- Générez une paire de clés SSH :ssh-keygen -t rsa
- Copiez la clé publique sur le serveur distant :ssh-copy-id username@remote_host
Après avoir copié la clé, vous pouvez vous connecter sans mot de passe.
8. Vérifier les journaux de connexion SSH
Pour afficher les tentatives de connexion SSH et les journaux de connexion sur le serveur :
Cette commande est utile pour surveiller les tentatives de connexion non autorisées.
9. Tunnel SSH (transfert de port)
Le tunnel SSH vous permet de transférer le trafic d’un port local vers un serveur distant en toute sécurité.
Transfert de port local :
Exemple : Transférer le port local 8080 vers le port 3306 d’un serveur distant.
Transfert de port à distance :
10. SSH dans un serveur distant avec un fichier d’identité différent
Si vous disposez de plusieurs clés SSH, vous pouvez spécifier une clé particulière à l’aide de l’option -i.
Exemple :
11. Copier des fichiers avec rsync via SSH
rsync est un outil plus avancé que scp pour copier des fichiers et des répertoires.
Exemple :
Le drapeau -a préserve les permissions des fichiers, -v correspond à une sortie verbeuse et -z active la compression.
12. Vérifier l’état de la connexion SSH
Pour vérifier si la connexion SSH à un serveur distant est toujours active :
Cette commande vérifie l’état de la connexion sans l’interrompre.
13. Liste des connexions SSH actives
Pour répertorier les connexions SSH actives sur un serveur, vous pouvez utiliser la commande :
Ou bien :
Ces commandes indiquent les utilisateurs actuellement connectés au serveur.
14. Terminer une session SSH
Pour quitter une session SSH, il suffit de taper :
Ou appuyez sur Ctrl D.
15. Configurer un proxy SOCKS avec SSH
SSH peut agir comme un proxy SOCKS, ce qui vous permet de naviguer sur Internet en toute sécurité via le tunnel SSH.
Exemple :
Réglez ensuite les paramètres du proxy de votre navigateur sur localhost:8080 pour utiliser le proxy SOCKS.
16. Transfert d’agent SSH
Si vous souhaitez utiliser vos clés SSH locales sur un serveur distant :
- Démarrez l’agent SSH sur votre machine locale :eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa - Se connecter avec l’agent forwarding :ssh -A nom_d’utilisateur@hôte_éloigné
Cela vous permet de vous connecter en SSH depuis le serveur distant vers un autre serveur en utilisant votre clé locale.
17. Fichier de configuration SSH
Pour simplifier les connexions SSH, vous pouvez créer un fichier de configuration :
- Modifiez ou créez ~/.ssh/config :nano ~/.ssh/config
- Ajoutez une entrée :Host myserver
Nom d’hôte exemple.com
Utilisateur user
Port 2222
Fichier d’identité ~/.ssh/id_rsa - Se connecter avec :ssh myserver
18. Vérifier la version de SSH
Pour savoir quelle version de SSH est installée sur votre système :
Exemple de sortie :
19. Définir l’intervalle KeepAlive pour éviter le Timeout
Pour maintenir la connexion SSH en vie et l’empêcher de s’interrompre, ajoutez ce qui suit dans ~/.ssh/config :
ServerAliveInterval 60
Cela permet d’envoyer un signal de maintien en vie toutes les 60 secondes.
20. Vérifier l’espace disque disponible sur le serveur distant
Vous pouvez utiliser df via SSH pour vérifier l’espace disque sur un serveur distant :
Exemple :
Cette commande affiche l’espace disque disponible dans un format lisible par l’homme (-h).
Résumé
Ces 20 commandes SSH couvrent un large éventail de fonctions, depuis les connexions de base et les transferts de fichiers jusqu’aux tâches avancées telles que la création de tunnels et l’utilisation de clés SSH. En maîtrisant ces commandes, vous pouvez gérer des serveurs distants de manière plus efficace et plus sûre. Qu’il s’agisse de déployer des applications, de transférer des fichiers ou de résoudre des problèmes de serveur, ces commandes SSH sont des outils essentiels dans la boîte à outils d’un administrateur système.