SSH
SSH - Guide Complet pour Utiliser et Sécuriser SSH
⚠️ Avertissement : Ce contenu est strictement destiné à un usage éducatif et éthique dans le domaine de la cybersécurité. Toute utilisation illégale ou malveillante est interdite et engage la seule responsabilité de l’utilisateur.
Introduction
Le SSH (Secure Shell) est un protocole réseau sécurisé qui permet l’accès et le contrôle à distance des serveurs et des appareils. Il est également utilisé pour transférer des fichiers, exécuter des commandes à distance, et créer des tunnels sécurisés. SSH est un outil incontournable pour les administrateurs système, les développeurs, et les pentesters.
Principales fonctionnalités :
Connexion sécurisée à distance.
Transfert de fichiers via SCP ou SFTP.
Tunneling sécurisé (port forwarding).
Authentification par clé publique/privée.
🚀 Étape 1 : Installation de SSH
1. Installation sur Linux (Client SSH)
SSH est souvent préinstallé sur les distributions Linux. Si ce n’est pas le cas :
Pour le serveur SSH (si vous voulez autoriser des connexions entrantes) :
Activez et démarrez le serveur :
2. Installation sur macOS
SSH est intégré à macOS. Vous pouvez l’utiliser directement via le terminal :
3. Installation sur Windows
Installez OpenSSH :
Accédez à Paramètres > Applications > Fonctionnalités Facultatives.
Recherchez et installez OpenSSH Client et OpenSSH Server.
Utilisez le terminal PowerShell ou installez un client comme PuTTY.
🛠️ Étape 2 : Connexions SSH de Base
1. Se Connecter à un Serveur
Commande :
Explications :
<username>
: Nom d'utilisateur sur le serveur distant.<host>
: Adresse IP ou nom de domaine du serveur.
Exemple :
2. Spécifier un Port Différent
Par défaut, SSH utilise le port 22. Pour se connecter à un port personnalisé :
Exemple :
3. Exécuter une Commande à Distance
Vous pouvez exécuter une commande sur un serveur distant sans ouvrir une session interactive :
Exemple :
4. Copier un Fichier avec SCP
Commande :
Exemple :
Pour copier un fichier depuis un serveur distant :
5. Transférer des Fichiers avec SFTP
Accédez à un serveur via SFTP :
Exemple :
Naviguez dans les répertoires distants et locaux avec cd
et lcd
. Utilisez get
et put
pour télécharger ou téléverser des fichiers.
🔍 Étape 3 : Options Avancées
1. Utiliser des Clés SSH
Générer une paire de clés :
Cela génère une clé privée (
~/.ssh/id_rsa
) et une clé publique (~/.ssh/id_rsa.pub
).Copier la clé publique vers le serveur :
Si
ssh-copy-id
n'est pas disponible, copiez-la manuellement :Se connecter avec la clé privée :
2. Tunneling SSH (Port Forwarding)
Forwarding Local : Redirige un port local vers un port distant :
Exemple :
Accédez ensuite à
http://localhost:8080
.Forwarding Distant : Redirige un port sur le serveur distant vers un port local :
3. Connexion via un Proxy
Pour accéder à un serveur via un proxy SSH intermédiaire :
Exemple :
4. Utiliser un Fichier de Configuration
Simplifiez les connexions en configurant SSH dans ~/.ssh/config
:
Connectez-vous simplement avec :
🔧 Étape 4 : Sécurisation de SSH
1. Modifier le Port SSH
Éditez le fichier de configuration du serveur SSH :
Changez la ligne :
Redémarrez le service SSH :
2. Désactiver les Connexions par Mot de Passe
Dans /etc/ssh/sshd_config
, désactivez l’authentification par mot de passe :
Activez uniquement l’authentification par clé publique.
3. Restreindre l’Accès
Limitez les utilisateurs autorisés :
Restreignez l’accès à des adresses IP spécifiques via un pare-feu.
4. Activer le Journalisation
Assurez-vous que les journaux SSH sont activés pour détecter les tentatives d'accès non autorisées :
📋 Étape 5 : Outils Associés à SSH
Fail2Ban :
Bloque les IP après plusieurs échecs de connexion SSH.
Installez avec :
SSHuttle :
Utilisé pour créer un VPN via SSH.
SSH Agent :
Évite de retaper votre mot de passe pour les clés privées :
Résumé des Commandes Clés
ssh <user>@<host>
Connexion simple.
ssh -p <port> <user>@<host>
Connexion sur un port personnalisé.
ssh-copy-id <user>@<host>
Installer une clé publique sur un serveur.
scp <source> <user>@<host>:<destination>
Copier un fichier local vers un serveur distant.
sftp <user>@<host>
Transférer des fichiers via SFTP.
ssh -L <local_port>:<remote_host>:<port>
Port forwarding local.
Avec ce guide, vous avez une vue d’ensemble complète des fonctionnalités SSH. Que ce soit pour une connexion simple, des transferts sécurisés ou des tunnels avancés, SSH est un outil puissant et flexible. Assurez-vous de toujours le sécuriser pour protéger vos systèmes contre les accès non autorisés.
Liens utiles :
Dernière mise à jour