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.
# Lancer le script PowerShell (une seule fois!)
.\init-keys.ps1
Cela va:
keys/ (s'il n'existe pas)lab_rsa (Windows â Gateway)gateway_rsa (Gateway â Destinations)lab_rsa dans ~/.ssh/ pour convenienceRĂ©sultat (local uniquement, jamais commitĂ©):
keys/
âââ lab_rsa (privĂ©e - LOCAL ONLY)
âââ lab_rsa.pub
âââ gateway_rsa (privĂ©e - LOCAL ONLY)
âââ gateway_rsa.pub
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 GitLabkeys/lab_rsa.pub dans GitLabkeys/gateway_rsa dans GitLabkeys/gateway_rsa.pub dans GitLabdocker compose up -d
ssh -p 2222 -i keys/lab_rsa testuser@localhost 'hostname'
# RĂ©sultat: dest1 ou dest2 â
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
# 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
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.
init-keys.ps1~/.ssh/ et keys/.gitignore)init-keys.ps1.gitignore)Chaque développeur génÚre ses propres clés isolées:
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
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.
â 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 â
Cause: init-keys.ps1 pas exécuté
Fix: .\init-keys.ps1
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
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
Cause: Container recréé, nouvelle host key
Fix: ssh-keygen -f ~/.ssh/known_hosts -R "[localhost]:2222"
ssh -p 2222 testuser@localhost
Aucun souci! Juste régénérer:
.\init-keys.ps1
Les nouvelles clés seront utilisées automatiquement.
Une seule fois: .\init-keys.ps1 | Ă chaque down/up: ssh-keygen -f ~/.ssh/known_hosts -R "[localhost]:2222"