J'essaie de configurer l'authentification SSH avec des fichiers de clés au lieu de nom d'utilisateur / mot de passe. Le client est une machine Windows exécutant PuTTY et le serveur est un serveur Ubuntu 12.04 LTS.
J'ai téléchargé puttygen.exe et l'ai généré une paire de clés. En /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 de "ssh-rsa AAA" dans "[email protected]" et l'ai mise dans le fichier ~/.ssh/authorized_keys
sur mon serveur (dans mon propre dossier personnel). Dans PuTTY, sous Connexion> SSH> Auth, j'ai entré le chemin de la clé privée générée sur mon client et enregistré les paramètres de la 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 Connection> SSH> Auth et que le chemin est correct) et que je lance le profil, il est indiqué
Server refused our key
J'ai essayé de mettre la clé publique dans un fichier sous le répertoire, ./ssh/authorized_keys/
mais cela ne m'a pas aidé. J'ai donc utilisé ./ssh/authorized_keys
ce fichier sous forme de fichier et y ai collé la clé. J'ai également essayé de générer une paire de clés privée / publique sur le serveur, d'y insérer la clé publique ./ssh/authorized_files
et de charger la clé privée dans PuTTY sur mon client. Le redémarrage du serveur n'a pas aidé non plus.
J'ai trouvé que l'erreur peut être résolue en plaçant la clé à un emplacement situé en dehors du dossier de base de l'utilisateur, mais cela n'est utile que si le dossier de base est crypté, ce qui n'est pas le cas de celui-ci.
Également essayé de générer une clé de 4096 bits, en pensant que 1024 était trop court.
Comment puis-je le faire fonctionner? Merci!
MODIFIER:
Ok, a /var/log/auth.log
dit:
sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh
Google me dit ~/.ssh/
devrait être 700 et et ~/.ssh/authorized_keys
devrait être 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]
la source
sshd: error: key_read: uudecode AAAAB3N
erreurauth.log
?authorized_keys
fichier. Je viens de coller monmykey.pub
fichier dans le~/.ssh
dossier et j'ai pensé qu'il le récupérerait. Au lieu de cela, ce dont j'avais besoin, en fin de compte, était d'exécuter ceci ou de modifier et coller ci-dessous d'autres clés pouvant s'y trouver.cat mykey.pub >> authorized_keys
. Cela semble simple maintenant, mais la leçon à retenir est que toutes les clés publiques doivent vivre,authorized_keys
pas seulement dans le~/.ssh/
répertoire. Quelqu'un s'il vous plaît aviser si ce n'est pas une affirmation correcte.Je viens de rencontrer ce problème. Bien que la configuration soit correctement configurée, comme cela a déjà été mentionné dans ce fil (autorisations sur allowed_keys, etc.), il s'avère que j'ai eu la clé publique au mauvais format. C'était sous la forme de:
Ce qui ne fonctionnait pas. Mais ça marche en ayant le sous la forme:
la source
ssh-keygen -i -f filenameofwindowsformpub.key
pour transformer la clé publique au format compris par votre serveur OpenSSH.Le problème est que Windows utilise une nouvelle ligne différente de linux. Ainsi, lors de la copie de la clé de Windows à Linux, il y a un \ n à la fin de la ligne que vous ne pouvez pas voir sous Linux dans l'éditeur.
Si vous suivez le fichier /var/log/auth.log et essayez de vous connecter, l'erreur est la suivante:
Si vous changez votre clé sur windows pour qu’elle soit sur une seule ligne sans nouvelle ligne à la fin et que vous la copiez ensuite sur linux, cela devrait fonctionner (a fait le tour pour moi).
la source
Je devais changer les permissions du répertoire personnel
la source
J'ai dû modifier les autorisations du répertoire ~ / .ssh de 770 à 700 et les autorisations du fichier ~ / .ssh / allowed_keys de 660 à 600.
Pour une raison quelconque, la suppression des autorisations de groupe a résolu ce problème pour moi.
la source
Le
~/.ssh/authorized_keys
fichier 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.la source
Voici ce qui a fonctionné pour moi:
Dans
puttygen
, après avoir généré vos clés, assurez-vous de copier et de coller les informations du champ supérieur pour accéder à votre fichier allowed_keys. Si vous enregistrez votre clé publique sur votre ordinateur client, puis l'ouvrez, le texte est différent de celui en haut de l'puttygen
écran. Encore une fois, assurez-vous de copier et coller le texte en haut de l'puttygen
écran (après avoir créé vos clés) dans votre fichier allowed_keys, qui devrait se trouver dans~/.ssh
.la source
En plus de toutes les réponses ci-dessus, assurez-vous de copier et coller la clé
puttygen
correctement!Si vous double-cliquez simplement sur le gros de la chaîne de clé pour la sélectionner, vous risquez de ne pas obtenir la chaîne complète, car la zone de texte divise les lignes de certains caractères
+
, de sorte que vous ne sélectionnez pas le texte après le+
caractère ( que vous ne pouvez pas voir car la zone de texte est trop petite). Assurez-vous de sélectionner la chaîne entière manuellement, de lassh-rsa
fin de la zone de texte.la source
Parfois, il peut être un problème lié à avoir la clé publique sur une ligne, cette approche semble la résoudre
la source
pour moi le problème était que j'avais créé en
~/.ssh/authorized_keys
utilisant root afin que root appartienne. Je devaischown sshuser:sshuser ~/.ssh/authorized_keys
alors ça a commencé à fonctionnerla source
Moi aussi, j'ai fait face à cette erreur et l'ai résolue en modifiant les autorisations du fichier allowed_keys
600
.la source
L'erreur courante est que les gens utilisent un éditeur de texte (comme Vim) et collent le texte copié avant l'activation de "l'insertion" (appuyez sur + i dans Vim avant de coller).
la source
En fait, j'ai changé
authorized_keys
la permission en644
, puis le problème a été résolu.la source
pour déboguer un ssh ouvert, on peut utiliser:
il exécute sshd sur un autre port 2020. Il exécute sshd en tant que programme actuel pour que la sortie passe à l'écran. si fermé il est fermé.
puis essayez de vous connecter.
explication:
https://www.attachmate.com/documentation/rsit-unix-802/rsit-unix-guide/data/sshd_options_ap.htm
la source
Je créais les fichiers .ssh et registered_keys en étant connecté en tant que root, ce qui donnait des autorisations erronées. Il a également placé tous les fichiers dans le répertoire racine.
Changer la propriété de ces fichiers à l'utilisateur de votre choix ne sera pas une bonne pratique. Je suis donc revenu sur mes pas et je me suis assuré que j'étais connecté en tant qu'utilisateur pour lequel je voulais utiliser SSH et que je créais à nouveau .ssh et allowed_keys.
Instructions pour connecter Win7 au serveur Xubuntu 15.04: Comment créer des clés SSH avec Putty pour se connecter à un SMV
la source