🔑 Gestion des clés SSH

Guide complet pour la gestion, sélection et configuration des clés SSH dans xsshend

🎯 Vue d’ensemble

xsshend offre une gestion complète des clés SSH avec détection automatique, sélection interactive et génération automatique. Le système simplifie l’authentification SSH en gérant automatiquement les différents types de clés.

🔄 Configuration automatique

Première utilisation

Au premier lancement, xsshend :

  1. Détecte l’absence du répertoire ~/.ssh/
  2. Crée automatiquement le répertoire et les fichiers nécessaires
  3. Vérifie la présence de clés SSH existantes
  4. Propose la génération d’une clé Ed25519 si aucune n’est trouvée
  5. Guide l’utilisateur dans le processus

Génération automatique

❌ Aucune clé SSH trouvée dans ~/.ssh/
🔑 Pour utiliser xsshend, vous avez besoin d'une clé SSH privée.
Voulez-vous générer une nouvelle clé SSH Ed25519 ? (o/N): o
Entrez votre adresse email (optionnel): user@example.com
🔄 Génération de la clé SSH en cours...
✅ Clé SSH Ed25519 générée avec succès: ~/.ssh/id_ed25519

Structure créée

~/.ssh/
├── hosts.json          # Configuration serveurs
├── id_ed25519          # Clé privée SSH
├── id_ed25519.pub      # Clé publique SSH
└── config              # Configuration SSH (optionnel)

🎯 Sélection des clés

Options disponibles

1. Sélection interactive (--ssh-key-interactive)

xsshend upload file.txt --ssh-key-interactive

Interface de sélection :

🔑 Sélection de la clé SSH...
🔑 Plusieurs clés SSH disponibles:
? Sélectionnez la clé SSH à utiliser ›
❯ id_rsa (RSA) - william.derue@gmail.com
  id_rsa_ci_cd (RSA) - ci-cd@smartdoc.com
  company_key (OpenSSH) - company-admin
  runpod_ed25519 (Ed25519) - william.dernier@gmail.com

2. Spécification par nom (--ssh-key <nom>)

xsshend upload file.txt --ssh-key id_rsa
xsshend upload file.txt --ssh-key company_key

3. Sélection automatique forcée (--ssh-key-auto)

xsshend upload file.txt --ssh-key-auto

Priorité : Ed25519 > RSA > ECDSA > Autres

4. Comportement par défaut

xsshend upload file.txt

Sélection intelligente avec information à l’utilisateur.

🔍 Détection des clés

Clés standard recherchées

  • id_ed25519 - ClĂ© Ed25519 (recommandĂ©e)
  • id_rsa - ClĂ© RSA standard
  • id_ecdsa - ClĂ© ECDSA
  • id_dsa - ClĂ© DSA (obsolète)

Clés personnalisées

  • Tous les fichiers dans ~/.ssh/ contenant “PRIVATE KEY”
  • DĂ©tection automatique du type de clĂ©
  • Support des commentaires dans les clĂ©s publiques

🛡️ Sécurité

Meilleures pratiques

  • âś… Algorithme Ed25519 : Cryptographie moderne et rapide
  • âś… Permissions strictes : ClĂ© privĂ©e avec permissions 600
  • âś… ssh-agent : Support transparent des passphrases
  • âś… Rotation rĂ©gulière : Renouvellement des clĂ©s

Recommandations

# Ajouter une passphrase à une clé existante
ssh-keygen -p -f ~/.ssh/id_ed25519

# Vérifier les permissions
ls -la ~/.ssh/
chmod 600 ~/.ssh/id_*
chmod 644 ~/.ssh/*.pub

đź”§ Exemples pratiques

Développement

# Sélection interactive pour différents environnements
xsshend upload app.jar --env Production --ssh-key-interactive

Automation/CI-CD

# Spécification directe dans les scripts
xsshend upload deploy.tar.gz --ssh-key ci_cd_key --env Production

Utilisation quotidienne

# Laisser xsshend choisir intelligemment
xsshend upload file.txt --env Staging
# Affiche : "🔑 Clé sélectionnée automatiquement: company_key (RSA)"

🔍 Diagnostic et dépannage

Voir les clés détectées

# Mode dry-run pour voir la sélection sans transfert
xsshend upload file.txt --ssh-key-interactive --dry-run

Messages d’erreur courants

Clé non trouvée :

❌ Clé SSH 'inexistante_key' non trouvée

Solution : Vérifiez le nom avec ls ~/.ssh/

Aucune clé disponible :

🔑 Aucune clé SSH trouvée, utilisation de ssh-agent

Solution : Configurez ssh-agent ou créez des clés SSH

Authentification échouée :

❌ Échec de l'authentification SSH pour l'utilisateur 'user'

Solution : Vérifiez que la clé publique est déployée sur le serveur

🔄 Migration et compatibilité

Depuis l’ancienne version

# Ancienne commande (fonctionne toujours)
xsshend upload file.txt

# Nouveau comportement : sélection intelligente + information

# Pour reproduire l'ancien comportement
xsshend upload file.txt --ssh-key id_ed25519

# Pour avoir le contrĂ´le complet
xsshend upload file.txt --ssh-key-interactive

Types de clés supportés

  • âś… Ed25519 (recommandĂ©)
  • âś… RSA (2048+ bits)
  • âś… ECDSA
  • ⚠️ DSA (obsolète, support limitĂ©)

📚 Références