Files
Momento/ssh-devSanbox-setup.md
sepehr dc5f6b77d9
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 46s
fix: note-input toolbar overflow and rename Assistant IA to IA Note
2026-05-02 21:38:56 +02:00

6.4 KiB

🔐 Connexion SSH sans mot de passe à devSanbox

Conteneur : devSanbox (LXC) — IP 192.168.1.83
OS : Ubuntu 24.04 LTS
Utilisateur : devparsa
Date : 2026-05-02


📋 Prérequis

  • Avoir accès au réseau local 192.168.1.x (même VLAN que le Proxmox)
  • Pouvoir pinger le conteneur : ping 192.168.1.83
  • Avoir VS Code avec l'extension Remote - SSH installée

🖥️ Partie 1 — Générer une clé SSH (si tu n'en as pas)

Sur macOS

# Vérifier si tu as déjà une clé
ls ~/.ssh/id_*.pub

# Si vide → générer une clé Ed25519 (recommandé)
ssh-keygen -t ed25519 -C "sepehr@devSanbox" -f ~/.ssh/id_devsanbox

# Laisser la passphrase vide (ou mets-en une si tu veux)
# → Appuie juste Entrée quand il demande la passphrase

Sur Windows (PowerShell / Git Bash)

# Vérifier si tu as déjà une clé
ls $env:USERPROFILE\.ssh\id_*.pub

# Si vide → générer une clé
ssh-keygen -t ed25519 -C "sepehr@devSanbox" -f $env:USERPROFILE\.ssh\id_devsanbox

# Laisser la passphrase vide

Résultat

Tu dois avoir deux fichiers :

  • ~/.ssh/id_devsanbox → clé privée (ne jamais partager)
  • ~/.ssh/id_devsanbox.pub → clé publique (à copier sur le serveur)

🖥️ Partie 2 — Copier la clé publique sur devSanbox

Méthode A : ssh-copy-id (le plus simple)

# macOS / Linux
ssh-copy-id -i ~/.ssh/id_devsanbox.pub devparsa@192.168.1.83

# Windows (PowerShell avec OpenSSH installé)
ssh-copy-id -i $env:USERPROFILE\.ssh\id_devsanbox.pub devparsa@192.168.1.83

→ Entre le password devparsa une dernière fois.

Méthode B : Manuelle (si ssh-copy-id n'existe pas)

# 1. Lire ta clé publique
cat ~/.ssh/id_devsanbox.pub

# 2. Copier le contenu (commence par ssh-ed25519...)

# 3. Te connecter au conteneur
ssh devparsa@192.168.1.83

# 4. Coller la clé dans authorized_keys
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "ssh-ed25519 AAAAC3... sepehr@devSanbox" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

# 5. Déconnecte-toi et reconnecte-toi sans password
exit
ssh devparsa@192.168.1.83

🖥️ Partie 3 — Configurer le fichier SSH config

Sur macOS / Linux

Crée/modifie ~/.ssh/config :

nano ~/.ssh/config

Ajoute :

# ============================================
# devSanbox — Conteneur de développement
# ============================================
Host devSanbox
    HostName 192.168.1.83
    User devparsa
    Port 22
    IdentityFile ~/.ssh/id_devsanbox
    IdentitiesOnly yes
    ServerAliveInterval 60
    ServerAliveCountMax 3
    # ForwardAgent yes  # Décommente si tu veux forwarder ta clé SSH

# Alias rapide
Host ds
    HostName 192.168.1.83
    User devparsa
    Port 22
    IdentityFile ~/.ssh/id_devsanbox
    IdentitiesOnly yes

Sur Windows

Crée/modifie %USERPROFILE%\.ssh\config :

Host devSanbox
    HostName 192.168.1.83
    User devparsa
    Port 22
    IdentityFile C:\Users\TON_USER\.ssh\id_devsanbox
    IdentitiesOnly yes
    ServerAliveInterval 60
    ServerAliveCountMax 3

Host ds
    HostName 192.168.1.83
    User devparsa
    Port 22
    IdentityFile C:\Users\TON_USER\.ssh\id_devsanbox
    IdentitiesOnly yes

Remplace TON_USER par ton vrai nom d'utilisateur Windows.


🖥️ Partie 4 — Tester la connexion

# Test simple
ssh devSanbox

# Ou avec l'alias court
ssh ds

# Si ça fonctionne → tu es connecté sans password !
# Tu dois voir : devparsa@devSanbox:~$

🖥️ Partie 5 — Connexion depuis VS Code

1. Installer l'extension

  • Ouvre VS Code
  • Extensions (Ctrl+Shift+X)
  • Cherche "Remote - SSH" de Microsoft
  • Installe

2. Se connecter

  • Ctrl+Shift+P → "Remote-SSH: Connect to Host..."
  • Sélectionne devSanbox (ou tape devSanbox)
  • VS Code s'ouvre dans une nouvelle fenêtre connectée au conteneur

3. Ouvrir le dossier projet

  • Une fois connecté : Ctrl+K Ctrl+O (ou File → Open Folder)
  • Tape /home/devparsa/dev/Momento
  • Le projet s'ouvre avec toutes les fonctionnalités VS Code

4. Terminal intégré

  • Ctrl+` (backtick) → terminal directement sur devSanbox
  • Tu peux faire git pull, npm install, etc.

🖥️ Partie 6 — Connexion depuis VS Code (méthode rapide)

Fichier de config VS Code

Dans VS Code connecté à devSanbox, crée .vscode/settings.json dans le projet :

{
  "terminal.integrated.defaultProfile.linux": "bash",
  "terminal.integrated.profiles.linux": {
    "bash": {
      "path": "/bin/bash",
      "args": ["-l"]
    }
  },
  "files.exclude": {
    "**/.git": true,
    "**/node_modules": true
  }
}

🔧 Dépannage

Problème : "Permission denied (publickey)"

# Vérifier les permissions sur le conteneur
ssh devparsa@192.168.1.83
ls -la ~/.ssh
# Doit être :
# drwx------ 2 devparsa devparsa .ssh
# -rw------- 1 devparsa devparsa authorized_keys

# Corriger si besoin
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Problème : "Could not resolve hostname"

# Vérifier que le conteneur est en ligne
ping 192.168.1.83

# Si pas de réponse → vérifier sur Proxmox
# ssh root@192.168.1.2
# pct status 101
# pct start 101  # si stopped

Problème : "Connection refused"

# Vérifier que SSH tourne sur le conteneur
ssh root@192.168.1.2
pct exec 101 -- systemctl status ssh
pct exec 101 -- systemctl start ssh  # si inactif

Problème : Clé pas reconnue sur Windows

# Vérifier que le service ssh-agent tourne
Get-Service ssh-agent
Start-Service ssh-agent

# Ajouter la clé à l'agent
ssh-add $env:USERPROFILE\.ssh\id_devsanbox

📝 Récapitulatif des commandes rapides

Action Commande
Connexion SSH ssh devSanbox ou ssh ds
Connexion VS Code Ctrl+Shift+P → "Remote-SSH: Connect to Host" → devSanbox
Ouvrir projet /home/devparsa/dev/Momento
Vérifier status conteneur (depuis Proxmox) ssh root@192.168.1.2 puis pct status 101

🔒 Sécurité

  • Change le password de devparsa : passwd (une fois connecté)
  • Ne partage jamais ta clé privée (id_devsanbox)
  • Backup ta clé : copie ~/.ssh/id_devsanbox et ~/.ssh/id_devsanbox.pub sur une clé USB sécurisée
  • Si tu perds ta clé : reconnecte-toi en password et refais l'étape 2

Document généré le 2026-05-02 — Conteneur devSanbox (192.168.1.83)