GNU/Linux >> Tutoriels Linux >  >> Linux

Correction d'une erreur SSH d'autorisation refusée (clé publique) sous Linux

Ce tutoriel rapide vous montre comment corriger l'erreur ssh "sign_and_send_pubkey :échec de la signature :l'agent a refusé l'opération Permission refusée (clé publique)" sous Linux.

Si vous essayez de vous connecter au serveur distant via SSH, vous pouvez rencontrer une erreur d'autorisation refusée. Cette erreur peut se produire pour plusieurs raisons. Et la solution à ce problème dépend de la raison exacte de l'erreur.

Dans mon cas, j'avais les clés publiques et privées stockées sur mon bureau Ubuntu 16.04. Après la sortie d'Ubuntu 18.04, j'ai décidé de passer à cette nouvelle version. Je préfère une nouvelle installation aux mises à niveau de distribution.

J'ai donc fait une sauvegarde des dossiers principaux de mon répertoire personnel, y compris le dossier .ssh qui avait des clés publiques et privées sur un disque externe.

Une fois installé, j'ai activé SSH sur Ubuntu 18.04 et tout restauré, y compris les clés SSH.

Maintenant, lorsque j'ai essayé de me connecter au serveur distant en utilisant ssh, j'ai pensé que cela fonctionnerait tout de suite car j'avais les mêmes clés publique et privée.

Mais cela n'a pas fonctionné. SSH m'a renvoyé cette erreur :

sign_and_send_pubkey: signing failed: agent refused operation
[email protected]: Permission denied (publickey).

Si vous êtes dans une situation similaire où vous avez copié vos clés SSH à partir d'une autre source, laissez-moi vous montrer comment corriger cette erreur SSH.

Corriger les autorisations de fichiers sur le dossier ~/.ssh et son contenu

En règle générale, vous pouvez définir les autorisations suivantes sur le répertoire ssh et ses fichiers (clés privées, clés publiques, Known_hosts, fichier de configuration ssh, etc.)

Élément Autorisation
répertoire .ssh 700 ((drwx------)
clés publiques 644 (-rw-r--r--)
clés privées 600 (-rw-------)
authorized_keys 600 (-rw-------)
hôtes_connus 600 (-rw-------)
config 600 (-rw-------)

Vous n'avez peut-être pas tous les fichiers, mais vous devez avoir des clés publiques et privées ici.

Voyons maintenant comment modifier l'autorisation de fichier sur les clés ssh et d'autres fichiers.

Erreur de correction d'autorisation refusée (clé publique)

Le problème réside donc dans les autorisations de fichiers ici. Vous voyez, lorsque j'ai copié les fichiers, l'USB était au format de fichier FAT de Microsoft. Ce fichier ne prend pas en charge les autorisations de fichier UNIX/Linux.

Et par conséquent, les autorisations sur les clés ssh copiées ont été modifiées en 777.

Pour SSH, les autorisations de fichiers sont trop ouvertes. Il n'est tout simplement pas autorisé d'avoir 777 autorisations sur les clés publiques ou privées. Et c'est pourquoi SSH a refusé la connexion ici.

ls -l .ssh
-rwxrwxrwx 1 abhishek abhishek 1766 Nov 12  2017 id_rsa
-rwxrwxrwx 1 abhishek abhishek  398 Nov 12  2017 id_rsa.pub
-rwxrwxrwx 1 abhishek abhishek 4214 Sep 21 21:39 known_hosts

La clé privée doit avoir des autorisations de lecture et d'écriture uniquement pour l'utilisateur et aucune autre autorisation pour le groupe et les autres.

Vous devez modifier l'autorisation à l'aide de la commande chmod :

chmod 600 ~/.ssh/id_rsa

De même, la clé publique ne doit pas avoir d'autorisations d'écriture et d'exécution pour le groupe et autre.

chmod 644 ~/.ssh/id_rsa.pub

Maintenant que vous avez mis les bonnes autorisations, vous pouvez vous reconnecter à ssh. À ce stade, il vous demandera votre mot de passe administrateur pour déverrouiller les clés. Entrez votre mot de passe administrateur et vous devriez être prêt à partir.

Cela m'a également appris une leçon sur le fait que copier-coller des fichiers est une mauvaise idée et qu'une sauvegarde appropriée doit être effectuée, sinon tous les fichiers auront les autorisations 777 dangereuses. J'ai dû modifier de manière récursive les autorisations de fichiers sur l'ensemble du répertoire d'accueil et croyez-moi, ce n'était pas une jolie chose à faire.

Comme je l'ai dit plus tôt, il peut y avoir diverses raisons à cette erreur. Pour le problème lié à l'autorisation d'ouvrir un fichier, ce correctif devrait vous aider à corriger l'erreur Autorisation refusée (clé publique) avec SSH. Si vous êtes intéressé, vous pouvez en savoir plus sur les bases de SSH.

Faites-moi savoir dans la section des commentaires si le correctif a fonctionné pour vous ou non. Suggérez également votre avis sur la copie des clés ssh sur d'autres ordinateurs.


Linux
  1. Fix FirewallD n'exécute pas l'erreur sur Linux Mint 12

  2. Comment réparer l'erreur Rust "linker 'cc' introuvable" sous Linux

  3. Comment corriger une erreur de commande introuvable sous Linux

  4. pip freeze renvoie une erreur :Autorisation refusée :hg

  5. Comment réparer l'erreur Docker Permission Denied sur Ubuntu

Comment réparer l'échec de l'autorisation SSH refusée (publickey, gssapi-keyex, gssapi-with-mic)

Comment configurer une connexion SSH sans mot de passe sous Linux avec des clés

Correction de l'erreur "AVERTISSEMENT :L'IDENTIFICATION DE L'HÔTE DISTANT A CHANGÉ" sous Linux

Comment réparer l'erreur d'échec d'authentification Cron sous Linux ?

Correction ::Erreur de connexion Linux SSH refusée

Autorisation de montage CIFS refusée sous Linux - Corrigé !