Essayer de faire l'authentification ssh avec les fichiers de clé: le serveur a refusé notre clé

43

J'essaie de configurer l'authentification ssh avec les fichiers de clés au lieu du nom d'utilisateur / mot de passe. Le client est une boîte Windows exécutant PuTTY et le serveur est un serveur Ubuntu 12.04 LTS.

J'ai téléchargé puttygen.exe et fait générer une paire de clés. Dans /etc/ssh/sshd_config j'ai cette ligne:

AuthorizedKeysFile %h/.ssh/authorized_keys

et sur le fichier de clé publique de mon client, il dit ceci:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "[email protected]"
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAr3Qo6T5XU06ZigGOd3eKvfBhFLhg5kWv8lz6
qJ2G9XCbexlPQGanPhh+vcPkhor6+7OmB+WSdHeNO652kTofnauTKcTCbHjsT7cJ
GNrO8WVURRh4fabknUHPmauerWQZ6TgRPGaz0aucU+2C+DUo2SKVFDir1vb+4u83
[email protected]
---- END SSH2 PUBLIC KEY ----

J'ai copié la partie "ssh-rsa AAA" dans "[email protected]" et l'ai mise dans le fichier ~/.ssh/authorized_keys sur mon serveur (dans mon propre dossier principal). Dans PuTTY sous Connection & gt; SSH & gt; Auth J'ai entré le chemin de la clé privée générée sur mon client et enregistré les paramètres de session.

J'ai redémarré le serveur ssh avec

sudo service ssh restart

Maintenant, si je charge le profil dans PuTTY (j'ai vérifié que la clé privée est toujours dans Connexion & gt; SSH & gt; Auth et que le chemin est correct) et exécutez le profil, il dit

Server refused our key

J'ai essayé de mettre la clé publique dans un fichier sous le répertoire ./ssh/authorized_keys/ , mais cela n'a pas aidé. J'ai donc utilisé ./ssh/authorized_keys comme fichier en collant le fichier. clé dedans J'ai également essayé de générer une paire de clés privée / publique sur le serveur, en plaçant la clé publique dans ./ssh/authorized_files et en chargeant la clé privée dans PuTTY sur mon client. Redémarrer le serveur n'a pas aidé non plus.

J'ai constaté que l'erreur pouvait être résolue en plaçant la clé à un endroit en dehors du dossier de départ de l'utilisateur, mais cela n'est utile que si le dossier de base est chiffré, ce qui n'est pas le cas.

J'ai également essayé de générer une clé de 4096 bits, pensant que 1024 était peut-être trop courte.

Comment puis-je faire en sorte que cela fonctionne? Merci!

EDIT:

Ok, /var/log/auth.log a dit:

sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh

Google me dit que ~/.ssh/ devrait être de 700 et que ~/.ssh/authorized_keys devrait être de 600, alors je l'ai fait. Maintenant, /var/log/auth.log dit:

sshd: error: key_read: uudecode AAAAB3N [etc etc etc until about 3/4 of my public key]
    
posée Forkbeard 11.06.2013 - 13:06
la source

14 réponses

78

Ok, c'est corrigé mais je ne vois pas en quoi cela diffère de ce que j'ai déjà essayé.

Ce que j'ai fait:

  • générer une paire de clés avec puttygen.exe (longueur: 1024 bits)
  • charger la clé privée dans le profil PuTTY
  • entrez la clé publique dans ~/.ssh/authorized_keys sur une ligne (doit commencer par ssh-rsa )
  • chmod 700 ~/.ssh
  • chmod 600 ~/.ssh/authorized_keys
  • chown $USER:$USER ~/.ssh -R
  • modifie /etc/ssh/sshd_config pour qu'il contienne AuthorizedKeysFile %h/.ssh/authorized_keys
  • sudo service ssh restart

Pour le dépannage, # tail -f /var/log/auth.log .

Merci pour votre aide!

    
réponse donnée Forkbeard 11.06.2013 - 15:12
la source
20

Je viens de rencontrer ce problème. Bien que la configuration soit correctement définie, comme cela est déjà mentionné dans ce fil de discussion (autorisations sur authorized_keys, etc.), il se trouve que la clé publique était dans le mauvais format. C'était sous la forme de:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "imported-openssh-key"
AAAAB3NzaC1yc2EAAAADAQABAAABAQDUoj0N3vuLpeviGvZTasGQ...
... lPmTrOfVTxI9wjax2JvKcyE0fiNMzXO7qiHJsQM9G9ZB4Lkf71kT
---- END SSH2 PUBLIC KEY ----

Qui ne fonctionnait pas. Mais le faire fonctionner sous la forme:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDU.....j0N3vuLpeviGvZTasGQa1rcJiPXQMW7v3uurb+n94B9MQaaWR0odsg5DJQL92TNenOda5BO1nd08y6+sdLQmHXExTz6X8FzgoVsAkEl3RscxcxHUksiKA9JfTo38vQvG/bPxIHMCuSumCQVA1laf3rO/uOrkcB7iMWhaoi1/z6AbFtPzeh7xjGfInMWwtBI0CsHSRF73VWIxT26w0P+KjafCjSn/7vDO1bT8QHujSQelU/GqaVEvbbvPl1a7POVjKgHLNekolwRKfNeVEewcnmZaoqfHgOKlPmTrOfVTxI9wjax2JvKcyE0fiNMzXO7qiHJsQM9G9ZB4Lkf71kT [email protected]
    
réponse donnée kuraara 16.08.2015 - 11:18
la source
9

le problème est que Windows utilise une nouvelle ligne différente de celle de Linux, donc lorsque vous copiez la clé de Windows vers Linux, il y a un \ n à la fin de ligne que vous ne pouvez pas voir sur Linux dans l'éditeur.

Si vous traquez le fichier /var/log/auth.log et essayez de vous connecter, l'erreur est comme suit:

  

sshd: erreur: key_read: uudecode AAAAB3N [....] == \ n

Si vous changez votre clé sur Windows pour la placer sur une seule ligne sans nouvelle ligne à la fin et la copier ensuite sur linux, cela devrait fonctionner (fait l'affaire).

    
réponse donnée Mischa 22.02.2015 - 23:44
la source
7

J'ai dû modifier les autorisations pour le répertoire de base

chmod 700 ~
    
réponse donnée Michal Zmuda 09.03.2014 - 21:31
la source
6

J'ai dû modifier les autorisations de répertoire ~ / .ssh de 770 à 700 et les autorisations de fichier ~ / .ssh / authorized_keys de 660 à 600.

Pour une raison quelconque, la suppression des autorisations de groupe a résolu ce problème pour moi.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
    
réponse donnée dopple 07.01.2014 - 14:25
la source
5

Le fichier ~/.ssh/authorized_keys nécessite que les clés soient sur une seule ligne. Si vous l'avez ajouté sur plusieurs lignes, comme dans votre collage ci-dessus, essayez de joindre les lignes.

    
réponse donnée Paul 11.06.2013 - 13:57
la source
1

En plus de toutes les réponses ci-dessus, assurez-vous de copier et coller la clé de puttygen correctement!

Si vous double-cliquez simplement sur la majeure partie de la chaîne de caractères pour la sélectionner, vous risquez de ne pas obtenir la chaîne complète, car la zone de texte divise des lignes sur certains caractères, comme + le texte après le caractère + (que vous ne pouvez pas voir car la zone de texte est trop petite). Veillez à sélectionner la chaîne entière manuellement, de ssh-rsa à la fin de la zone de texte.

    
réponse donnée Mark Lakata 26.02.2014 - 19:43
la source
1

Parfois, la clé publique peut être associée à une seule ligne, cette approche semble le résoudre

echo 'the content of the public key' > /root/.ssh/authorized_keys
    
réponse donnée dav 10.05.2014 - 18:34
la source
1

pour moi, le problème était que j'avais créé ~/.ssh/authorized_keys en utilisant root afin de posséder la racine. J'ai dû chown sshuser:sshuser ~/.ssh/authorized_keys alors il a commencé à travailler

    
réponse donnée PeanutPower 18.02.2015 - 03:06
la source
1

J'ai aussi fait face à cette erreur et l'ai résolue en changeant les autorisations du fichier authorized_keys en 600 .

chmod 600 ~/.ssh/authorized_keys
    
réponse donnée Kaleem 06.03.2015 - 12:17
la source
0

Voici ce qui a fonctionné pour moi:

Dans puttygen , après avoir généré vos clés, assurez-vous de copier et coller les informations du champ supérieur pour accéder à votre fichier authorized_keys. Si vous enregistrez votre clé publique sur votre ordinateur client, puis ouvrez-la, le texte est différent du texte en haut de l'écran puttygen . Encore une fois, assurez-vous de copier et coller le texte du TOP de l'écran puttygen (après avoir créé vos clés) dans votre fichier authorized_keys qui doit se trouver dans ~/.ssh .

    
réponse donnée zach 05.05.2015 - 20:01
la source
0

Une erreur commune est que les utilisateurs utilisent un éditeur de texte (comme Vim) et collent le texte copié avant d’activer "insert" (appuyez sur + i dans Vim avant de coller)

    
réponse donnée hakabe 26.10.2015 - 18:53
la source
0

En fait, j'ai changé la permission de authorized_keys à 644 , puis le problème a été résolu.

chmod 644 ~/.ssh/authorized_keys
    
réponse donnée Peter Liang 04.12.2015 - 03:06
la source
0

Je créais les fichiers .ssh et authorized_keys en étant connecté en tant que root, ce qui donnait de fausses autorisations. Il a également placé tous les fichiers sous le répertoire racine. Je crois que c'est la racine de beaucoup de problèmes avec "clé refusée par le serveur".

Changer la propriété de ces fichiers pour l'utilisateur que vous désirez ne sera pas une bonne pratique, alors je suis revenu sur mes pas et je me suis connecté en tant qu'utilisateur avec lequel je voulais utiliser SSH et j'ai de nouveau créé .ssh et authorized_keys. Erreur.

Instructions pour connecter le serveur Win7 au serveur Xubuntu 15.04: Comment créer des clés SSH w / Putty pour se connecter à un VPS

    
réponse donnée Leo F 05.08.2015 - 22:09
la source

Lire d'autres questions sur les étiquettes