## Qu'est-ce que SSH ? SSH (Secure Shell) est un protocole qui vous permet de vous connecter à votre serveur à distance de manière sécurisée et d'exécuter des commandes en ligne de commande. ## Se connecter en SSH ### Depuis Linux ou macOS Ouvrez un terminal et entrez : ```bash ssh root@VOTRE_IP_VPS ``` Si vous avez changé le port SSH (recommandé) : ```bash ssh -p VOTRE_PORT root@VOTRE_IP_VPS ``` ### Depuis Windows **Option 1 : PowerShell ou Invite de commandes** (Windows 10/11) ```powershell ssh root@VOTRE_IP_VPS ``` **Option 2 : PuTTY** (client graphique) 1. Téléchargez PuTTY sur [putty.org](https://www.putty.org) 2. Entrez l'adresse IP dans le champ **Host Name** 3. Port : 22 4. Cliquez sur **Open** ## Authentification par clé SSH L'authentification par clé SSH est plus sécurisée que le mot de passe. Elle consiste en une paire de clés : une clé **privée** (sur votre ordinateur) et une clé **publique** (sur le serveur). ### Générer une paire de clés ```bash # Générer une clé ED25519 (recommandé) ssh-keygen -t ed25519 -C "votre@email.com" # Ou une clé RSA 4096 bits ssh-keygen -t rsa -b 4096 -C "votre@email.com" ``` Appuyez sur Entrée pour accepter l'emplacement par défaut (`~/.ssh/id_ed25519`). Définissez une passphrase pour une sécurité maximale. ### Copier la clé sur le serveur ```bash # Méthode automatique ssh-copy-id -i ~/.ssh/id_ed25519.pub root@VOTRE_IP_VPS # Méthode manuelle cat ~/.ssh/id_ed25519.pub | ssh root@VOTRE_IP_VPS "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" ``` ### Désactiver l'authentification par mot de passe Une fois les clés configurées, désactivez les connexions par mot de passe : ```bash # Sur votre serveur sudo nano /etc/ssh/sshd_config # Modifier : PasswordAuthentication no ChallengeResponseAuthentication no # Redémarrer SSH sudo systemctl restart sshd ``` Avant de désactiver les mots de passe, **vérifiez que votre connexion par clé fonctionne** dans une session SSH séparée. Sinon vous serez bloqué hors de votre serveur. ## Fichier de configuration SSH local Créez `~/.ssh/config` sur votre ordinateur pour simplifier les connexions : ```bash ~/.ssh/config Host mon-vps HostName VOTRE_IP_VPS User votre-utilisateur Port 22 IdentityFile ~/.ssh/id_ed25519 ``` Connectez-vous ensuite simplement avec : ```bash ssh mon-vps ``` ## Transférer des fichiers via SCP ou SFTP ### SCP (copie sécurisée) ```bash # Envoyer un fichier vers le serveur scp fichier-local.txt root@VOTRE_IP_VPS:/chemin/destination/ # Télécharger un fichier depuis le serveur scp root@VOTRE_IP_VPS:/chemin/fichier.txt ./fichier-local.txt # Transférer un dossier entier scp -r dossier-local/ root@VOTRE_IP_VPS:/chemin/destination/ ``` ### SFTP avec FileZilla Configurez FileZilla avec SFTP et vos clés SSH pour un transfert graphique de fichiers. [Voir les instructions →](/hebergement/fichiers) ## Console web (accès d'urgence) Si vous perdez l'accès SSH (mauvaise configuration du firewall, service SSH arrêté), une console web (VNC/série) accessible depuis votre navigateur permet de reprendre la main sans SSH. Accédez à la console d'urgence depuis votre espace client. ## Résolution de problèmes SSH **Connexion refusée (Connection refused)** : - Vérifiez que le service SSH est démarré : `systemctl status sshd` - Vérifiez le firewall : `ufw status` — assurez-vous que le port SSH est autorisé **Timeout (pas de réponse)** : - Votre firewall bloque peut-être le port SSH - Utilisez la [console web](/vps/gestion#console-web) pour débloquer la situation **Permission denied (publickey)** : - Vérifiez que votre clé publique est bien dans `~/.ssh/authorized_keys` sur le serveur - Vérifiez les permissions : `chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys`