clé publique demandant toujours le mot de passe et la phrase clé


19

J'essaie de SSH d'un NAS à un serveur Web en utilisant une clé publique. L'utilisateur NAS est «root» et l'utilisateur du serveur Web est «backup»

J'ai toutes les autorisations définies correctement et lorsque je débogue la connexion SSH, j'obtiens: (dernier petit morceau du débogage)

debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /root/.ssh/id_dsa.pub
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/root/.ssh/id_dsa.pub':

J'utilise la commande:

ssh -v -i /root/.ssh/id_dsa.pub backup@webserver.com

Le fait qu'il demande une phrase de passe est certainement un bon signe, mais je ne veux pas qu'il demande cela ou un mot de passe (qui vient après si j'appuie sur 'retour' sur la phrase de passe)

Réponses:


24

C'est parce que votre clé privée est cryptée ...

Vous pouvez ajouter votre clé à un agent ssh en utilisant ssh-addou supprimer la phrase secrète (et avec elle le cryptage) de la clé à l'aide de la commande suivante:

ssh-keygen -p -f /root/.ssh/id_dsa -N ''


ÉDITER

Oh, je viens de réaliser que vous essayez d'utiliser votre clé publique pour vous authentifier ... Vous voulez utiliser la clé privée là-bas:

ssh -v -i /root/.ssh/id_dsa backup@webserver.com

Et juste pour être absolument sûr, le contenu du fichier id_dsa.pubva ~backup/.ssh/authorized_keyssur le serveur web. Vous pouvez utiliser la commande suivante pour le faire automatiquement

ssh-copy-id -i /root/.ssh/id_rsa.pub backup@webserver.com

obtenir toujours le problème. Cela a fonctionné et m'a accordé «votre identification a été enregistrée avec la nouvelle phrase secrète». mais demande toujours un mot de passe la prochaine fois que j'essaye de me connecter. Je ne sais pas quoi essayer d'autre ...
Andrew Atkinson

vérifier ma réponse mise à jour ... peut-être que cela aide ...
andrekeller

merci, il semble que j'essayais peut-être de comparer la clé publique à la clé publique ... Je n'ai pas eu besoin de retirer la phrase secrète
Andrew Atkinson

Le fait que j'utilisais mon pub pour m'authentifier (une erreur stupide) était le problème. Merci!
Qix

6

Cela m'est arrivé lorsque la clé privée que j'avais n'était pas au format OpenSSH.

À l'origine, j'ai généré ma clé sur Windows en utilisant PuttyGen et je me faisais rebondir avec cette même chose.

J'ai pu le réparer en chargeant la clé dans PuttyGen et en cliquant sur "Conversions" pour l'obtenir au format OpenSSH.


2

Il y a plusieurs choses.

Principalement, si la CLÉ demande un mot de passe, la clé a été générée avec lui. Deuxièmement, si le système demande un mot de passe après, la clé ne s'authentifie pas. Cela signifie que vous devrez régénérer votre clé SSH (ou la changer comme suggéré par @rbtux) et corriger les fichiers authorized_keys.

ssh-keygen -t {dsa | rsa} -b {1024 | 2048 | 4096} -C "commentaire facultatif" -f id_examplekey

Les éléments entre accolades sont les options, le type et la taille des bits (pour indiquer l'évidence: dsa> rsa, 4096> 1024 - en termes de "sécurité").

Ensuite, vous devez ajouter la clé publique (.pub) aux fichiers authorized_keyset authorized_keys2(c'est une idée fausse courante de dire que le .pub est à usage local, mais il est destiné à être comparé) Donc dans le .sshdossier du serveur .

$ cat id_examplekey.pub >> authorized_keys {, 2}

Ensuite, de votre côté, vous devez vous assurer que les autorisations clés sont chmod 600 id_exampleet pour alléger la saisie de tout cela, vous pouvez configurer le fichier de configuration: ~/.ssh/configsur votre boîte locale (c'est-à-dire un squelette, vous pouvez le personnaliser une tonne):

Host example.com
    User WHATEVERNAME
    IdentityFile ~/.ssh/id_examplekey

mais la section du débogage qui se lit comme suit: debug1: le serveur accepte la clé: pkalg ssh-dss blen 433 cela ne signifie-t-il pas que la clé a été acceptée? J'ai recréé sans mot de passe, toujours le même? - Je n'ai plus d'idées? Merci
Andrew Atkinson

@AndrewAtkinson On dirait que vous l'avez obtenu ci-dessous. Vous avez besoin de la clé privée sur la machine (locale, cliente, etc.) et de la clé public.pub ajoutée aux fichiers authorized_keys. Mes autres suggestions devraient vous aider à gagner du temps: D Bonne chance!
nerdwaller

Vous écrivez « Principalement, si la clé demande un mot de passe, la clé a été générée avec elle. » <- oui si je viens de tester ce que le questionneur a fait, donc, faire -i avec la clé publique $ ssh user@comp -i ~/.ssh/id_rsa.pubet il a dit des autorisations mauvaises et privées la clé sera ignorée .. j'ai donc changé les autorisations en 600 comme id_rsa le serait, et il a demandé une phrase de passe. Donc, en effet, il vous demandera alors une phrase secrète si vous spécifiez la clé publique, même si la clé publique et la clé privée n'ont pas été générées avec une phrase secrète
barlop

2

Pour moi, puisque la clé elle-même était cryptée, j'ai suivi les étapes suivantes:

  • Démarrez ssh-agent: $ ssh-agent bash
  • Ajoutez une clé d'identité standard au gestionnaire de clés: $ ssh-add
  • Si vous souhaitez ajouter une clé différente, alors: $ ssh-add /location/of/key

Pour inspecter à tout moment, la liste des clés actuellement chargées:

$ ssh-add -l

Plus de détails peuvent être obtenus à partir de ce lien


1

essayez https://wiki.gentoo.org/wiki/Keychain

C'est une sorte d'enveloppe ssh-agentetssh-add

Avantages: Pas besoin de saisir le mot de passe à plusieurs reprises tant que vous ne redémarrez pas. Pourrait être utilisé dans crontab.

Cela pourrait être utile.


1

Cela peut être dû au fait que vous utilisez une clé de publication DSA qui est désactivée par défaut dans OpenSSH v7.

Si vous ne pouvez pas modifier la paire de clés, une solution de contournement possible consistera à dire à votre démon SSH sur webserver.com d'accepter ces types de clés, en mettant à jour /etc/ssh/sshd_configou en ajoutant la ligne suivante

PubkeyAcceptedKeyTypes=+ssh-dss

Et puis redémarrer le service

/etc/init.d/ssh restart                     # or equivalent

0

Sur Mac OSX, vous pouvez ajouter votre clé privée au trousseau en utilisant la commande:

ssh-add -K /path/to/private_key

Si votre clé privée est stockée dans ~ / .ssh et est nommée id_rsa:

ssh-add -K ~/.ssh/id_rsa

Vous serez ensuite invité à saisir votre mot de passe, qui sera stocké dans votre trousseau.


Que dois-je faire sur le client Linux si le client Mac fonctionne?
bbaassssiiee
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.