Après la mise à niveau vers Fedora 23, l'authentification sans mot de passe (basée sur une clé publique) ne fonctionne plus dans SSH: lorsque vous essayez de SSH vers un hôte, il vous demande mon mot de passe sur l'hôte distant. Je n'arrive pas à utiliser ma clé privée SSH. Tout fonctionnait bien avec Fedora 22.
Ma clé publique est une clé DSA ( ~/.ssh/id_dsa.pub
). J'utilise OpenSSH 7.1 ( openssh-7.1p1-5.fc23.x86_64
).
Comment puis-je obtenir à nouveau l'authentification sans mot de passe pour fonctionner correctement?
ssh -Q
. Il s'agit de savoir comment résoudre un échec de SSH. J'ai trouvé une partie du matériel sur superuser.com/q/962918/93541 et ailleurs utile pour identifier cette solution, mais la réponse y décrit comment utiliserssh -Q
et ne répond pas à cette question (par exemple, elle n'explique pas comment corriger) ce problème), donc à mon avis, ce n'est pas un dup. Celui sur Unix et Linux est très similaire; J'aimerais avoir vu celui-là plus tôt. Merci encore pour les liens!Réponses:
Ceci est le résultat de la mise à niveau vers OpenSSH 7.0. Comme le disent les notes de publication d'OpenSSH 7.0 , "La prise en charge des clés d'hôte et d'utilisateur ssh-dss est désactivée par défaut au moment de l'exécution".
La solution consiste à ajouter la ligne suivante à
~/.ssh/config
sur chaque ordinateur client (chaque ordinateur sur lequel vous exécutez le client SSH):Si le serveur utilise OpenSSH 7.0 ou une version plus récente, vous devrez également ajouter cette ligne à
/etc/ssh/sshd_config
sur chaque machine serveur.Vous pouvez également générer une clé SSH entièrement nouvelle et l'ajouter à votre fichier authorized_keys sur chaque serveur auquel vous souhaitez vous connecter. Je vous recommande d'utiliser RSA , pour éviter les problèmes de compatibilité. Je ne recommande pas ECDSA, car apparemment gnome-keyring-daemon ne récupère pas automatiquement les clés SSH de type ECDSA.
Remarque éditoriale: Pourquoi les gens d'OpenSSH ont-ils désactivé les clés DSA? Je ne sais pas. Pour autant que je sache, il n'y a rien de mal à la sécurité des clés DSA (ssh-dss). La page Web d'OpenSSH affirme que ssh-dss est faible, mais pour autant que je sache, ssh-dss 1024 bits n'est pas plus faible que RSA 1024 bits, et les clés RSA 1024 bits ne sont pas désactivées.
la source
Mes deux centimes
En tant que
.ssh/config
fichier d' édition afin de permettre que cela semble être une mauvaise idée, je suggèreCréez une nouvelle clé, en utilisant un outil récent.
Copiez ensuite la nouvelle clé publique (dans le clipbord)
Connectez-vous une dernière fois en utilisant l'ancienne clé:
Ensuite , mettez à niveau
@host
leauthorized_keys
fichier, en ajoutant votre nouvelle clé de pub et déconnectez-vouspaste, puis Ctrl+D
Connectez-vous avec une nouvelle clé en utilisant la syntaxe par défaut:
Ensuite , mettez à niveau
@host
leauthorized_keys
fichier, en supprimant votre ancienne pubkey (j'utilisesed -e 1d -i .ssh/authorized_keys
lorsque mon ancienne pubkey est en ligne1
de ce fichier).Je suggère de mettre à niveau votre serveur ssh si vous le pouvez.
Testez si l'ancienne clé ne fonctionne plus.
Cela ne doit pas fonctionner ;-)
Vous pouvez même revérifier si tout va bien:
la source
~/.ssh/config
n'est pas une si bonne idée.~/.ssh/config
soi, mais plutôt avec l'idée d'autoriser le DSA. Merci d'avoir expliqué. Ça a du sens. (Je pense que j'ai déjà expliqué dans ma réponse et mes commentaires pourquoi je trouve cette recommandation déroutante, mais je n'essaierai pas d'en débattre ici.).config
vous permet d'exécuterssh
pendant longtemps et même de penser que vous utilisez un algorithme faible . En utilisant-o Pubkey...
à la ligne de commande, vous ne pardonnerez pas qu'il y a quelque chose à mettre à niveau .