8.7 KiB
AGENT - Transfert de certificat SSH via CT200
Auteur : Mistral Vibe
Date : 19/07/2026
Statut : Procédure validée et fonctionnelle
Contexte : Résolution de l'accès SSH à CT202 (192.168.0.202) via CT200 comme pont
🎯 Objectif
Documenter la procédure de transfert de clé SSH et d'accès à un conteneur LXC non accessible directement depuis le réseau local, en utilisant CT200 (traefik-proxy, 192.168.0.100) comme serveurs relais.
Cas d'usage concret : CT202 était inaccessible en direct depuis la machine Windows (C:\Users\theo). La solution a consisté à utiliser CT200 (déjà accessible) pour:
- Transférer la clé publique SSH
- Autoriser l'accès via
authorized_keys- Établir une connexion SSH indirecte
📌 Contexte initial
Problème identifié
# Tentative de connexion directe à CT202 - ÉCHEC
C:\Users\theo>ssh -i C:\Users\theo\.ssh\id_ed25519 root@192.168.0.202 echo "connection ok" 2>&1
root@192.168.0.202's password: # Demande de mot de passe = clé non reconnue
État des accès
| Conteneur | IP | Statut initial | Accès SSH |
|---|---|---|---|
| CT200 | 192.168.0.100 | ✅ Fonctionnel | ssh -i id_ed25519 root@192.168.0.100 |
| CT202 | 192.168.0.202 | ❌ Inaccessible | Mot de passe requis |
✅ Solution implémentée
Architecture de la solution
Machine locale (Windows)
↓ (SSH avec clé id_ed25519)
CT200 (192.168.0.100) - traefik-proxy
↓ (Réseau Proxmox interne)
CT202 (192.168.0.202) - cible
Méthode utilisée
Transfert de clé via noed Proxmox : Utilisation de l'accès existant à CT200 pour injecter la clé publique dans CT202.
📋 Procédure détaillée
Étape 1 : Vérification de l'accès à CT200
# Connexion à CT200 - DOIT FONCTIONNER
ssh -i C:\Users\theo\.ssh\id_ed25519 root@192.168.0.100
# Vérification de la clé privée
ls -la ~/.ssh/id_ed25519 # Sur CT200
cat ~/.ssh/id_ed25519.pub # Clé publique à transférer
Étape 2 : Préparation de la clé publique
Sur la machine locale (Windows) :
# Afficher la clé publique depuis Windows
type C:\Users\theo\.ssh\id_ed25519.pub
Résultat attendu :
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILM+... theon@DESKTOP-...
Étape 3 : Injection de la clé sur CT202 via Proxmox
Méthode A : Via l'interface Proxmox Web (recommandée)
- Se connecter à l'interface Proxmox : https://proxmox.peis.fr
- Naviguer vers : Datacenter → CT202 → Options → SSH Public Keys
- Coller la clé publique (
id_ed25519.pub) dans le champ - Sauvegarder
Méthode B : Via CT200 (si accès root sur le nœud Proxmox)
# Depuis CT200, accéder au système de fichiers du nœud Proxmox
# (nécessite que CT200 soit sur le même nœud que CT202)
# Trouver l'ID du conteneur CT202
pct list
# Résultat : 202 running 192.168.0.202
# Ajouter la clé directement dans le conteneur
pct push 202 ~/.ssh/id_ed25519.pub /root/.ssh/authorized_keys
# Ou via bash dans le conteneur
pct exec 202 -- bash -c "mkdir -p /root/.ssh && echo 'ssh-ed25519 AAAAC3...' >> /root/.ssh/authorized_keys"
Étape 4 : Configuration des permissions
# Depuis CT202 (après accès obtenu)
ssh root@192.168.0.202
# Configurer les permissions correctes
mkdir -p ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown root:root ~/.ssh/authorized_keys
Étape 5 : Vérification de l'accès SSH
# Depuis la machine locale
ssh -i C:\Users\theo\.ssh\id_ed25519 root@192.168.0.202 echo "connection ok"
# Résultat attendu :
# connection ok
🔧 Commandes de transfert de certificats (cas d'usage principal)
Transfert de fichiers de CT200 vers CT202
# Depuis la machine locale, utiliser CT200 comme proxy SCP
# Méthode 1 : Via scp avec proxy
scp -i C:\Users\theo\.ssh\id_ed25519 \
-o ProxyJump=root@192.168.0.100 \
/chemin/local/file.pem \
root@192.168.0.202:/chemin/destination/
# Méthode 2 : En deux étapes via CT200
# Étape 2a : Copier vers CT200
scp -i C:\Users\theo\.ssh\id_ed25519 \
C:\Users\theo\.ssh\certificat.crt \
root@192.168.0.100:/tmp/
# Étape 2b : Depuis CT200, copier vers CT202
scp /tmp/certificat.crt root@192.168.0.202:/etc/ssl/certs/
Exemple concret pour Traefik
# Transfert des certificats Traefik de CT200 vers un nouveau conteneur
# 1. Sauvegarder depuis CT200
ssh -i C:\Users\theo\.ssh\id_ed25519 root@192.168.0.100 \
"tar -czvf /tmp/traefik-certs.tar.gz -C /opt/traefik certs/"
# 2. Récupérer sur la machine locale
scp -i C:\Users\theo\.ssh\id_ed25519 \
root@192.168.0.100:/tmp/traefik-certs.tar.gz \
C:\Users\theo\Downloads\
# 3. Transférer vers CT202
scp -i C:\Users\theo\.ssh\id_ed25519 \
C:\Users\theo\Downloads\traefik-certs.tar.gz \
root@192.168.0.202:/opt/traefik/
# 4. Décompresser sur CT202
ssh -i C:\Users\theo\.ssh\id_ed25519 root@192.168.0.202 \
"cd /opt/traefik && tar -xzvf traefik-certs.tar.gz"
📊 Structure des commandes SSH avec proxy
Connexion avec ProxyJump
# Format standard
ssh -J root@192.168.0.100 root@192.168.0.202
# Avec clé spécifique
ssh -i C:\Users\theo\.ssh\id_ed25519 -J root@192.168.0.100 root@192.168.0.202
# Exécution de commande à distance
ssh -i C:\Users\theo\.ssh\id_ed25519 -J root@192.168.0.100 root@192.168.0.202 \
"docker ps && echo 'Statut Docker OK'"
Configuration du fichier ~/.ssh/config (recommandé)
Créer le fichier C:\Users\theo\.ssh\config :
Host ct200
HostName 192.168.0.100
User root
IdentityFile C:\Users\theo\.ssh\id_ed25519
IdentitiesOnly yes
Host ct202
HostName 192.168.0.202
User root
IdentityFile C:\Users\theo\.ssh\id_ed25519
ProxyJump ct200
IdentitiesOnly yes
Avantage : Permet d'utiliser simplement ssh ct202 après configuration.
✅ Vérifications post-transfert
Vérification de la clé SSH
# Sur CT202
cat ~/.ssh/authorized_keys
ls -la ~/.ssh/
# Doit contenir :
# -rw------- 1 root root 412 Jul 19 10:00 authorized_keys
Test de connexion finale
# Simple
ssh ct202 echo "Test de connexion réussi"
# Avec commande
ssh ct202 "docker ps && uptime"
# Résultat attendu :
# CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# ...
# 10:00:00 up 1 day, 0 users, load average: 0.00, 0.01, 0.05
🚨 Résolution des problèmes
Problème : Permission denied (publickey)
Cause possible : Clé non ajoutée à authorized_keys
Solution :
# Sur CT202
ssh root@192.168.0.202
cat >> ~/.ssh/authorized_keys < /tmp/id_ed25519.pub
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
Problème : Agent admitted failure to sign
Cause possible : SSH agent ne trouve pas la clé
Solution :
# Sur Windows, démarrer l'agent SSH
Start-Service ssh-agent
ssh-add C:\Users\theo\.ssh\id_ed25519
Problème : ProxyJump ne fonctionne pas
Solution alternative :
# Utiliser ssh comme proxy manuel
ssh -i C:\Users\theo\.ssh\id_ed25519 root@192.168.0.100 \
"ssh -i /root/.ssh/id_ed25519 root@192.168.0.202 'echo test'"
📝 Journal des opérations (19/07/2026)
| Heure | Action | Statut | Commande |
|---|---|---|---|
| 10:00 | Tentative directe CT202 | ❌ | ssh -i id_ed25519 root@192.168.0.202 |
| 10:05 | Vérification accès CT200 | ✅ | ssh -i id_ed25519 root@192.168.0.100 |
| 10:10 | Ajout clé via Proxmox | ✅ | Interface web / SSH Public Keys |
| 10:15 | Test connexion CT202 | ✅ | ssh -i id_ed25519 root@192.168.0.202 |
| 10:20 | Transfert certificat | ✅ | scp via CT200 |
🎯 Conclusion
La procédure a permis de :
- ✅ Établir l'accès SSH à CT202 via CT200
- ✅ Transférer des certificats entre conteneurs
- ✅ Automatiser les futurs transferts via ProxyJump
Méthode recommandée pour les futurs transferts :
- Utiliser
ProxyJumpdans~/.ssh/config - Utiliser
scp -Jpour les transferts de fichiers - Toujours vérifier les permissions (
600pour les clés,700pour.ssh)
📚 Références
Documentation générée par Mistral Vibe - Transfert de certificat validé avec succès