Skip to content

SSH

Configuration Proxmox Host

Paramètre Valeur
Host 192.168.1.21
Port 22
User root
Auth Mot de passe + clés publiques
Config /etc/ssh/sshd_config
# Vérifier config active
grep -v "^#\|^$" /etc/ssh/sshd_config

# Status service
systemctl status sshd

Spécificités Proxmox

~/.ssh/authorized_keys sur PVE est un symlink → /etc/pve/priv/authorized_keys (géré par le cluster Proxmox).

  • Utiliser ssh-copy-id : écriture au bon endroit via le symlink
  • Ne jamais éditer ~/.ssh/authorized_keys directement
# Vérifier les clés autorisées
cat /etc/pve/priv/authorized_keys

Clés SSH Client

Génération

# Terminal (macOS/Linux) ou PowerShell/WSL (Windows)
ssh-keygen -t ed25519 -C "admin@homelab"

# Fichiers générés
~/.ssh/id_ed25519      # Clé privée — ne jamais partager
~/.ssh/id_ed25519.pub  # Clé publique

OpenSSH est inclus nativement depuis Windows 10 — disponible dans PowerShell et Command Prompt.

Copie vers Proxmox Host

macOS / Linux :

ssh-copy-id root@192.168.1.21

Windows PowerShell (ssh-copy-id absent nativement) :

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@192.168.1.21 "cat >> /etc/pve/priv/authorized_keys"

Copie vers conteneurs LXC

Les LXC ont un authorized_keys standard (pas de symlink) :

ssh-copy-id root@192.168.1.100  # LXC 100 - Media
ssh-copy-id root@192.168.1.101  # LXC 101 - Management
ssh-copy-id root@192.168.1.102  # LXC 102 - PBS
ssh-copy-id root@192.168.1.103  # LXC 103 - Network Gateway
ssh-copy-id root@192.168.1.104  # LXC 104 - Services
ssh-copy-id root@192.168.1.105  # LXC 105 - Web

Test connexion

# Doit se connecter sans mot de passe
ssh root@192.168.1.21

VS Code Remote SSH

Extension Remote - SSH pour éditer directement sur le serveur.

Configuration ~/.ssh/config

macOS/Linux : ~/.ssh/config
Windows : %USERPROFILE%\.ssh\config

Host proxmox
    HostName 192.168.1.21
    User root
    IdentityFile ~/.ssh/id_ed25519

Host lxc-100
    HostName 192.168.1.100
    User root
    IdentityFile ~/.ssh/id_ed25519

Host lxc-101
    HostName 192.168.1.101
    User root
    IdentityFile ~/.ssh/id_ed25519

# Répéter pour lxc-102 à lxc-105

Connexion

  1. Ctrl+Shift+P / Cmd+Shift+PRemote-SSH: Connect to Host
  2. Sélectionner l'hôte (ex: proxmox)
  3. VS Code Server se télécharge automatiquement à la première connexion

Accès LAN / VPN

SSH accessible uniquement depuis le LAN (192.168.1.0/24) ou via WireGuard VPN (10.13.13.0/24).

Dépannage : mot de passe redemandé

Après une réinstallation ou migration du serveur, VS Code Remote SSH peut redemander le mot de passe :

Symptôme Cause Fix
"REMOTE HOST IDENTIFICATION HAS CHANGED" Clés hôte SSH régénérées, known_hosts client obsolète ssh-keygen -R 192.168.1.21
Mot de passe demandé après acceptation Clé publique absente de /etc/pve/priv/authorized_keys ssh-copy-id root@192.168.1.21
# Sur chaque machine cliente — bash (macOS/Linux) ou PowerShell (Windows)
ssh-keygen -R 192.168.1.21
ssh-copy-id root@192.168.1.21

Sécurité

  • Fail2ban : Jail sshd active (maxretry=3, bantime=1h) — voir Sécurité LXC 103
  • Accès réseau : LAN uniquement (192.168.1.0/24), pas de port forwarding externe
  • Hardening : auth par clé uniquement, désactivation password auth — voir Roadmap