Mon ordinateur a récemment cessé d'accepter l'authentification par clé publique entrante. J'ai un bureau ubuntu 11.04 dans lequel je ssh depuis une machine Windows. J'utilise du mastic avec du reconstitution historique. Je peux me connecter mais uniquement avec l'authentification par mot de passe interactif, pas avec ma clé rsa que j'ai configurée.
J'ai déjà vérifié que la clé est répertoriée dans ~ / .ssh / authorized_keys. Comment puis-je résoudre ce problème et que dois-je vérifier?
ssh
authentication
Andrew Redd
la source
la source
~
,~/.ssh
et~/.ssh/authorized_keys
sont modifiables uniquement par vous (sans autorisation particulière d'écriture de groupe). Recherchez/var/log/auth.log
les entrées de journal créées lors de vos tentatives de connexion. Copiez-collez-les dans votre question (éditez les noms pour plus de confidentialité si vous le souhaitez). Vérifiez également si le problème est purement côté serveur ou non: copiez la clé privée sur la machine Linux (vous devrez convertir le fichier de clé privée de PuTTY au format OpenSSH) et voir si celassh localhost
fonctionne.Réponses:
Si l'authentification par clé publique ne fonctionne pas: assurez-vous que côté serveur, votre répertoire personnel (
~
), le~/.ssh
répertoire et le~/.ssh/authorized_keys
fichier ne sont accessibles en écriture que par leur propriétaire . En particulier, aucun d'entre eux ne doit être accessible en écriture par le groupe (même si l'utilisateur est seul dans le groupe).chmod 755
ouchmod 700
est ok,chmod 770
n'est pas.Que vérifier en cas de problème:
ssh -vvv
pour voir beaucoup de sortie de débogage. Si vous postez une question demandant pourquoi vous ne pouvez pas vous connecter avec ssh, incluez cette sortie (vous pouvez anonymiser les noms d'hôte et d'utilisateur)./var/log/auth.log
.la source
J'ai rencontré la même chose et j'ai finalement compris que c'était parce que j'avais chiffré mon répertoire personnel. SSH ne peut pas lire le fichier authorized_keys tant que vous ne vous êtes pas connecté, il vous oblige donc à vous authentifier par mot de passe en premier. Voir la section sur le répertoire personnel chiffré sur le lien suivant:
https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Encrypted_Home_Directory
la source
Si vous vérifiez les autorisations sur les répertoires et qu'il y a un "." juste après eux, alors vous pouvez avoir selinux activé, qui gâchera avec l'échange de clés et par défaut pour l'identification manuelle du mot de passe.
Vous pouvez désactiver SELinux pour dépanner en suivant les instructions ici: http://www.centos.org/docs/5/html/5.1/Deployment_Guide/sec-sel-enable-disable-enforcement.html , ou modifiez simplement le / etc / selinux / config et remplacez-le par "forcer" par "désactivé".
J'espère que cela t'aides.
la source
chmod 600 ~/.ssh/authorized_keys
le fichier était inscriptible en groupe. (via pyrosoft.co.uk/blog/2013/01/12/… )restorecon ~ -R
) est un bon point de départ.Je m'assurerais que vos paramètres dans / etc / ssh / sshd_config sont corrects.
Pour forcer l'utilisation de PKI uniquement et pour interdire les mots de passe, trouvez la ligne
dans votre fichier, décommentez-le et définissez-le sur
Je voudrais également lire la balance des paramètres pour m'assurer qu'ils ont du sens. En particulier, essayez de vous assurer que vous utilisez des clés RSA car DSA est connu pour être compromis.
la source
Une des causes possibles du problème est que vous avez des clés DSA mais maintenant SSH (apparemment) par défaut requiert des clés RSA. J'ai eu le problème lors de la mise à niveau vers 16.04. Vous pouvez en voir plus ici, mais la réponse courte est d'ajouter ce qui suit à
~/.ssh/config
:la source
J'ai résolu ce problème en décommentant "PasswordAuthentication yes" dans / etc / ssh / sshd_config.
la source
En raison d'un besoin de dépannage de la communication entre deux machines différentes, j'avais deux clés privées
~/.ssh
côté client.Au lieu de configurer chaque hôte de serveur avec la clé privée respective
~/.ssh/identity
comme je l'aurais dû, j'ai eu la clé secondaire (et dans ce cas, incorrecte) configurée pour tous les hôtes:La correction a
~/.ssh/identity
résolu le problème:la source
J'ai juste eu le même problème, mais changer les autorisations avec
chmod
n'a pas aidé, car il s'est avéré que je ne possédais pas le~/.ssh/authorized_keys
fichier. Vous pouvez changer la propriété du.ssh
répertoire avec:la source
D'une certaine manière, cela a fonctionné pour moi:
root @ kaiser: ~ # vim / etc / ssh / sshd_config
Changer cette ligne de oui à non 28 StrictModes non
Réessayer
sysadmin @ suselinux1: ~> con sysadmin kaiser Bienvenue dans Ubuntu 12.04.1 LTS (GNU / Linux 3.2.0-25-i686 générique)
Dernière connexion: Ven 9 nov 15:40:11 2012 à partir du 10.1.3.25 sysadmin @ kaiser: ~ $ date vie nov 9 17:53:11 CST 2012 sysadmin @ kaiser: ~ $
la source
sshd
documents, qui ne tombent pas exactement dans la catégorie "lecture agréable du samedi"