20 commandes SSH courantes que vous devriez utiliser aujourd'hui ⋆ ALexHost SRL

Testez vos compétences sur tous nos services d'hébergement et bénéficiez de 15% de réduction!.

Utilisez le code à la caisse :

Skills
13.12.2024

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.

ssh nom_d’utilisateur@hôte_distant
  • 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 :

ssh user@example.com

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.

ssh -p port_number nom_d’utilisateur@hôte_éloigné

Exemple :

ssh -p 2222 user@example.com

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.

scp fichier_local nom_utilisateur@hôte_distant:/chemin/vers/destination

Exemple :

scp monfichier.txt user@example.com:/home/user/

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 :

scp nom_utilisateur@hôte_distant:/chemin/vers_le_fichier_distant /chemin/vers_la_destination_locale

Exemple :

scp user@example.com:/home/user/remote_file.txt .

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.

scp -r /path/to/local_directory username@remote_host:/path/to/remote_destination

Exemple :

scp -r mon_dossier user@example.com:/home/user/

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.

ssh nom_utilisateur@hôte_distant ‘commande_à_exécuter’

Exemple :

ssh user@example.com ‘ls -la /home/user’

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.

  1. Générez une paire de clés SSH :
    ssh-keygen -t rsa
  2. 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 :

sudo cat /var/log/auth.log | grep ‘sshd’

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 :

ssh -L port_local:hôte_à_distance:port_à_distance nom_utilisateur@hôte_à_distance

Exemple : Transférer le port local 8080 vers le port 3306 d’un serveur distant.

ssh -L 8080:localhost:3306 user@example.com

Transfert de port à distance :

ssh -R remote_port:local_host:local_port username@remote_host

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.

ssh -i /chemin/vers/clé_privée nom_d’utilisateur@hôte_distant

Exemple :

ssh -i ~/.ssh/id_rsa user@example.com

11. Copier des fichiers avec rsync via SSH

rsync est un outil plus avancé que scp pour copier des fichiers et des répertoires.

rsync -avz /chemin/vers/répertoire_local nom_d’utilisateur@hôte_éloigné:/chemin/vers/répertoire_éloigné

Exemple :

rsync -avz mon_dossier/ user@example.com:/home/user/

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 :

ssh -O check username@remote_host

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 :

qui

Ou bien :

w

Ces commandes indiquent les utilisateurs actuellement connectés au serveur.

14. Terminer une session SSH

Pour quitter une session SSH, il suffit de taper :

exit

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.

ssh -D port_local nom_d’utilisateur@hôte_éloigné

Exemple :

ssh -D 8080 user@example.com

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 :

  1. Démarrez l’agent SSH sur votre machine locale :
    eval $(ssh-agent)
    ssh-add ~/.ssh/id_rsa
  2. 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 :

  1. Modifiez ou créez ~/.ssh/config :
    nano ~/.ssh/config
  2. Ajoutez une entrée :
    Host myserver
    Nom d’hôte exemple.com
    Utilisateur user
    Port 2222
    Fichier d’identité ~/.ssh/id_rsa
  3. 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 :

ssh -V

Exemple de sortie :

OpenSSH_8.4p1, OpenSSL 1.1.1k 25 Mar 2021

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 :

Hôte *
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 :

ssh nom_utilisateur@hôte_distant ‘df -h’

Exemple :

ssh user@example.com ‘df -h’

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.

Testez vos compétences sur tous nos services d'hébergement et bénéficiez de 15% de réduction!.

Utilisez le code à la caisse :

Skills