Résolution des problèmes

Pourquoi ma clé SSH n'est-elle pas acceptée ?

Corriger une clé SSH refusée dans Wardterm : ajouter la clé publique à authorized_keys, vérifier ses permissions et l'utilisateur, puis lire le journal.

Ce que vous voyez

L'app affiche Le serveur n'a pas accepté la clé. Les détails indiquent :

authentication failed for deploy@203.0.113.10

Quand la clé elle-même est inutilisable, les détails commencent par key not valid:. Dans le Journal des connexions, la tentative apparaît comme Échec, mot de passe ou clé incorrect.

Pourquoi cela arrive

Le serveur n'accepte une clé que si sa moitié publique se trouve dans le fichier ~/.ssh/authorized_keys de l'utilisateur avec lequel vous vous connectez, et seulement si ce fichier et son dossier ne sont pas modifiables par d'autres.

Que faire

  1. Vérifiez l'Utilisateur du serveur : la clé doit être dans le fichier authorized_keys de cet utilisateur.
  2. Mettez la clé sur le serveur avec Ajouter à un serveur dans Clés. L'app se connecte une fois avec le mot de passe et ajoute la clé publique. Voir Clés SSH.
  3. Ou ajoutez-la à la main : copiez la clé publique dans Clés, puis sur le serveur :
    mkdir -p ~/.ssh
    echo 'ssh-ed25519 AAAA... you@example' >> ~/.ssh/authorized_keys
  4. Corrigez les permissions, que le serveur vérifie :
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
  5. Une clé gardée sur un seul appareil ne signe que depuis cet appareil. Sur un autre appareil, utilisez une autre clé ou ajoutez aussi la clé de cet appareil. Voir Clés sur cet appareil.
  6. Lisez le journal du serveur, qui indique pourquoi il a refusé, par exemple un mauvais propriétaire ou de mauvais droits :
    sudo journalctl -u ssh -u sshd -n 50

Le même test avec OpenSSH, qui liste chaque clé proposée :

ssh -v -i ~/.ssh/id_ed25519 deploy@203.0.113.10