219 votes

SSH Permission refusée (publickey)

J'essaie de me connecter à un Linode (sous Ubuntu 12.04 LTS) à partir de ma machine locale (également sous Ubuntu 12.04 LTS).

J'ai créé une clé privée et une clé publique sur ma machine locale et copié ma clé publique dans le fichier authorized_keys de mon Linode. Cependant, chaque fois que j'essaie de me connecter en ssh à mon Linode, j'obtiens le message d'erreur suivant Permission denied (publickey) .

Ce n'est pas un problème avec la façon dont ssh est configuré sur mon Linode parce que je peux y accéder depuis ma machine Windows en utilisant l'authentification par clé.

Dans mon .ssh sur ma machine Ubuntu locale, j'ai mes id_rsa y id_rsa.pub fichiers. Dois-je créer un fichier authorized_keys sur ma machine locale ?

EDIT : Voici ce que j'obtiens lorsque j'exécute ssh -vvv -i id_rsa [youruser]@[yourLinode] :

debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).

2voto

Kent Points 21

Dans mon cas, le client est ubuntu 14.04lts, le serveur est un serveur win 2012 exécutant cygwin. J'utilisais 'ssh administrator@x.x.x.x', alors que le répertoire du serveur 2012 dans cygwin était /home/Administrator. C'était donc sensible à la casse, lorsque j'ai essayé 'ssh Administrator@x.x.x.x' (notez le A majuscule sur Administrator), cela a bien fonctionné.

Un message d'erreur tel que "utilisateur introuvable" m'aurait conduit à la solution beaucoup plus rapidement que "autorisation refusée (publickey,keyboard-interactive)".

2voto

LpLrich Points 121

Il se peut que certaines personnes aient configuré l'accès ssh pour que la clé soit uniquement sur le compte root, puis créé un nouvel utilisateur et ne se soient pas rendu compte qu'elles devaient

ssh root@your-ip-address

rsync --archive --chown=[user]:[user] ~/.ssh /home/[user]

logout

Alors réessayez. Remplacez [utilisateur] par votre nouveau compte utilisateur.

Ceci est courant lors de la mise en place d'un nouveau serveur sur DigitalOcean lorsque vous avez utilisé des ssh-keys lors de la configuration.

https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04

1voto

biocyberman Points 748

Si tout le reste a échoué, vérifiez que votre utilisateur de connexion appartient au AllowedGroup de ssh. C'est-à-dire que votre utilisateur est membre du groupe indiqué à la ligne suivante dans le fichier /etc/ssh/sshd_config sur le serveur :

AllowGroups ssh #Here only users of 'ssh' group can login

1voto

site80443 Points 71

J'ai eu le même problème en copiant la clé publique d'un utilisateur régulier (par exemple johndoe) d'un système Centos cPanel vers un serveur Ubuntu sur AWS. Comme suggéré par gertvdijk ci-dessus, j'ai vérifié /var/log/auth.log et bien sûr, il a dit Authentication refused: bad ownership or modes for directory /home/johndoe . Il s'est avéré que j'avais fait une erreur de 777. /home/johndoe en essayant de définir /home/johndoe/public_html comme racine de document de virtualhost par défaut pour apache2 (ce n'est pas nécessaire pour cette tâche non plus).

Voir aussi les réponses aquí y aquí

Le serveur n'a besoin que de la clé publique dans le fichier .ssh/authorized_keys et le client (l'ordinateur sur lequel vous travaillez) doit avoir la clé privée (.pem, ou si vous utilisez SFTP avec Filezilla, .ppk)

1voto

ssoto Points 152

Pour les utilisateurs de Putty qui, comme moi, sont arrivés sur ce fil de discussion, vous pouvez également obtenir cette erreur si vous avez oublié d'ajouter user user@Ip !

Les autres étant la permission sur le fichier clé chmod à 600)

ssh 1.1.1.1 -i /path/to/.pem file 
Permission denied (publickey).`

ssh user@1.1.1.1 -i /path/to/.pem file

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X