Désactiver temporairement l'authentification par clé publique ssh à partir du client

37

Existe-t-il un moyen de désactiver temporairement l'authentification par clé publique lors de l'utilisation de ssh et d'utiliser plutôt l'authentification par mot de passe?

Je souhaite actuellement accéder à un serveur distant, mais j'utilise un autre ordinateur portable, pas le mien.

En parcourant ce lien , j'ai constaté que la commande ssh -o PreferredAuthentications=keyboard-interactive -o PubkeyAuthentication=no host1.example.orgne fonctionnait pas partout. Et oui, ça ne marche pas pour moi. J'utilise: OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 mars 2012

Edit: J'ai aussi essayé de taper ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no mais j'ai toujours "Permission denied (publickey)".

Donc, y a-t-il une configuration spécifique à faire sur le serveur distant pour que cette commande fonctionne? Ou, quand cette commande fonctionnera comme prévu?

Merci beaucoup pour les conseils.

Nsukami _
la source
30
Si vous avez de nouveau suivi le lien, il y avait quelqu'un qui ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no
affirmait
@NikW Merci beaucoup, j'aurais peut-être dû le mentionner, essayer la commande que vous proposez aussi, toujours avoir la "permission refusée (publickey)".
Nsukami _
1
Juste frappé ce problème parce que mon ordinateur portable avait une tonne de clés, et SSH a essayé tous, et j'ai été rejeté avant même une chance d'entrer un mot de passe. Merci d'avoir posé la question.
Dallaylaen
3
@ NickW Si vous mettez votre commentaire comme réponse, je le reverrais.
labyrinthe

Réponses:

9

Cela ressemble à un problème de configuration côté serveur.

Si le serveur autorise à la fois les clés publiques et les mots de passe authentifiés, même si vous essayez de vous connecter sans fichier de clé privée sur le client, il devrait vous demander un mot de passe.

Si vous recevez le message d'erreur, "Permission denied (publickey)" cela signifie que l'authentification par mot de passe n'est pas prise en charge sur votre serveur.

Sans voir le fichier / etc / sshd_config, il est difficile de le savoir, mais j’imagine que vous devez vous assurer que la ligne suivante existe:

PasswordAuthentication yes

Redémarrez le serveur ssh. Lorsque vous vous connectez à partir du client, vous devez être invité à saisir un mot de passe si aucune clé privée n'est présente ou si la clé privée ne correspond pas à la clé publique du serveur.

Une autre solution plus sûre consiste à copier votre clé privée sur l'ordinateur portable que vous utilisez ou à générer une nouvelle clé privée à utiliser sur cet ordinateur portable et à ajouter la clé publique à .ssh/authorized_keys

v25
la source
6

Il suffit de créer un fichier d’identification vierge.

touch $HOME/.ssh/blank

Si vous laissez l'autorisation 640 ou 644, ssh se plaindra du fait que les autorisations ne sont pas suffisamment sécurisées et ne l'utilisera pas. Si vous choisissez 600, il vous demandera un mot de passe 3 fois et échouera car il n'y a pas de mot de passe. Alors laissez-le 640 ou 644.

Ensuite, lorsque vous utilisez ssh, utilisez cette commande.

ssh -i $HOME/.ssh/blank servername-or-ip

Vous pouvez utiliser .ssh / config et définir une entrée d’hôte pour ne pas utiliser la clé, mais elle est moins temporaire ou vous pouvez créer des alias pour serveur et serveur-nokey, mais le processus est long et difficile à maintenir.

shane
la source
5
-i /dev/nullfonctionne aussi et n'a pas besoin de vérifier les autorisations.
svvac
Les fichiers vierges / nuls ne fonctionnent pas, sshindique Load key "/dev/null": invalid formatensuite l'utilisation des autres clés que vous avez configurées, puis l'échec de la connexion en raison d'un trop grand nombre d'échecs d'authentification.
Malvineous
Pour moi cela n'a pas fonctionné. Peut-être que mes informations d'identification ont été stockées dans le trousseau de clés Gnome.
Yaroslav Nikitenko