SETUP_INITIAL.md 5.3 KB

🔑 SETUP INITIAL — ClĂ©s SSH et configuration

⚠ IMPORTANT: ClĂ©s jamais commitĂ©es

Le dossier keys/ entier est dans .gitignore — Rien ne sera jamais transfĂ©rĂ© vers GitLab.

Chaque développeur génÚre ses propres clés localement avec le script.


⚠ IMPORTANT: À FAIRE UNE SEULE FOIS

Étape 1: GĂ©nĂ©rer les clĂ©s SSH

# Lancer le script PowerShell (une seule fois!)
.\init-keys.ps1

Cela va:

  1. ✅ CrĂ©er le rĂ©pertoire keys/ (s'il n'existe pas)
  2. ✅ GĂ©nĂ©rer lab_rsa (Windows → Gateway)
  3. ✅ GĂ©nĂ©rer gateway_rsa (Gateway → Destinations)
  4. ✅ Copier lab_rsa dans ~/.ssh/ pour convenience

Résultat (local uniquement, jamais commité):

keys/
├── lab_rsa        (privĂ©e - LOCAL ONLY)
├── lab_rsa.pub
├── gateway_rsa    (privĂ©e - LOCAL ONLY)
└── gateway_rsa.pub

Étape 2: Garder les clĂ©s locales

Les clés restent uniquement sur votre machine grùce à .gitignore:

keys/  ← Tout le dossier est ignorĂ©

Vous ne verrez jamais:

  • ❌ keys/lab_rsa dans GitLab
  • ❌ keys/lab_rsa.pub dans GitLab
  • ❌ keys/gateway_rsa dans GitLab
  • ❌ keys/gateway_rsa.pub dans GitLab

🚀 Aprùs le premier setup

Démarrer le lab

docker compose up -d

Tester

ssh -p 2222 -i keys/lab_rsa testuser@localhost 'hostname'
# RĂ©sultat: dest1 ou dest2 ✓

🔄 RedĂ©marrer/Reconstruire

Cas 1: ArrĂȘter et relancer (sans reconstruire)

docker compose down
docker compose up -d

⚠ ATTENTION: Vous allez avoir une erreur de host key!

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Solution: Supprimer l'entrée du host dans known_hosts

# Supprimer la ligne pour localhost:2222
ssh-keygen -f ~/.ssh/known_hosts -R "[localhost]:2222"

# Puis relancer
docker compose up -d

Cas 2: Reconstruire complĂštement (hard reset)

# ArrĂȘter et supprimer volumes
docker compose down -v

# Supprimer known_hosts
ssh-keygen -f ~/.ssh/known_hosts -R "[localhost]:2222"

# Relancer
docker compose up -d

📝 Explication: Pourquoi cette erreur?

Chaque fois que vous docker compose down/up, les conteneurs sont recréés avec de NOUVELLES clés d'hÎte (host keys).

Conteneur 1 (down):
  Host key: ABC123...

Conteneur 2 (up):
  Host key: DEF456...
  ↑ DiffĂ©rent! SSH refuse!

Solution: Réinitialiser known_hosts à chaque fois.


🔐 SĂ©curitĂ©: ClĂ©s SSH

lab_rsa (privée - LOCAL ONLY)

  • GĂ©nĂ©rĂ©e par init-keys.ps1
  • Vous la gardez dans ~/.ssh/ et keys/
  • Jamais commitĂ©e (dans .gitignore)

gateway_rsa (privée - LOCAL ONLY)

  • GĂ©nĂ©rĂ©e par init-keys.ps1
  • CompilĂ©e dans l'image Docker gateway au build
  • Jamais commitĂ©e (dans .gitignore)

Les clés publiques

  • Aussi ignorĂ©es (sĂ©curitĂ©: aucune exception)
  • GĂ©nĂ©rĂ©es localement Ă  chaque fois

đŸ‘„ Workflow collaboratif

Chaque développeur génÚre ses propres clés isolées:

Développeur A

1. git clone ...
2. .\init-keys.ps1          ← GĂ©nĂšre ses clĂ©s A_lab_rsa, A_gateway_rsa
3. docker compose up -d
4. Tests avec ses clés A

DĂ©veloppeur B (mĂȘme repo, mĂȘme moment)

1. git clone ...
2. .\init-keys.ps1          ← GĂ©nĂšre ses clĂ©s B_lab_rsa, B_gateway_rsa
3. docker compose up -d
4. Tests avec ses clés B

Les clĂ©s d'A et B ne se mĂ©langent jamais — Chacun a les siennes localement.


✅ Checklist setup initial

☐ Exécuter: .\init-keys.ps1
☐ Vérifier: keys/ existe maintenant
☐ Vérifier: keys/lab_rsa existe
☐ Vérifier: keys/gateway_rsa existe
☐ Vérifier: .gitignore protÚge keys/
☐ docker compose up -d
☐ Tester: ssh -p 2222 testuser@localhost 'hostname'
☐ RĂ©sultat: dest1 ou dest2 ✓

🐛 Troubleshooting clĂ©s

Erreur: "keys/lab_rsa: No such file or directory"

Cause: init-keys.ps1 pas exécuté
Fix: .\init-keys.ps1

Erreur: "Permission denied (publickey)"

Cause: Clés générées mais Dockerfile pas mis à jour
Fix: Régénérer les clés + docker compose build --no-cache

Erreur: "Load key: Permission denied"

Cause: gateway_rsa permissions incorrectes dans image
Fix: Vérifier gateway/Dockerfile:
     RUN chmod 600 /etc/sshproxy/gateway_rsa
     RUN chown testuser:testuser /etc/sshproxy/gateway_rsa
     Puis: docker compose build --no-cache

Erreur: "ECDSA key fingerprint... Are you sure?"

Cause: Container recréé, nouvelle host key
Fix: ssh-keygen -f ~/.ssh/known_hosts -R "[localhost]:2222"
     ssh -p 2222 testuser@localhost

Keys/ supprimé accidentellement?

Aucun souci! Juste régénérer:
.\init-keys.ps1

Les nouvelles clés seront utilisées automatiquement.

📚 Voir aussi


🎯 RĂ©sumĂ© en 1 ligne

Une seule fois: .\init-keys.ps1 | À chaque down/up: ssh-keygen -f ~/.ssh/known_hosts -R "[localhost]:2222"