EDIT: Mettre exactement ce qui a été fait.
J'ai besoin de SSH localhost
sans mot de passe, la façon habituelle de le faire (avec des clés publiques) ne fonctionne pas.
user@PC:~$ rm -rf .ssh/*
user@PC:~$ ssh-keygen -t rsa > /dev/null
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
user@PC:~$ ls .ssh/
id_rsa id_rsa.pub
user@PC:~$ ssh-copy-id -i localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is f7:87:b5:4e:31:a1:72:11:8e:5f:d2:61:bd:b3:40:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
user@localhost's password:
Now try logging into the machine, with "ssh 'localhost'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
user@PC:~$ ssh-agent $SHELL
user@PC:~$ ssh-add -L
The agent has no identities.
user@PC:~$ ssh-add
Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
user@PC:~$ ssh-add -L
ssh-rsa ...MY KEY HERE
user@PC:~$ ssh-copy-id -i localhost
user@localhost's password:
Now try logging into the machine, with "ssh 'localhost'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
user@PC:~$ ssh localhost echo 'testing'
user@localhost's password:
user@PC:~$
Comme vous pouvez le voir dans la dernière commande, il demande toujours le mot de passe !!! Comment puis-je résoudre ce problème ?? Ubuntu-10.04, OpenSSH_5.3p1
EDIT2:
Ajout d'informations sur le sshd
user@PC:~$ cat /etc/ssh/sshd_config | grep Authentication
# Authentication:
RSAAuthentication yes
PubkeyAuthentication yes
RhostsRSAAuthentication no
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
ChallengeResponseAuthentication no
# PasswordAuthentication yes
#KerberosAuthentication no
#GSSAPIAuthentication no
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
EDIT3: résultat de l'addition de $ ssh -vv localhost
$ssh -vv localhost
...
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/user/.ssh/identity
debug1: Offering public key: /home/user/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/user/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
user@localhost's password:
EDIT4:
Je vérifie simplement si les fichiers sont les mêmes et que le md5sum est d'accord
RSAAuthentication yes
etPubkeyAuthentication yes
dans votre / etc / ssh / sshd_config? Que montre ssh -vv localhost? Je viens de l'essayer sur une boîte 10.04 et je n'ai eu aucun problème ..Réponses:
Tout d'abord, vous devez comprendre ce que vous faites:
Vous copiez la clé publique
.ssh/id_rsa.pub
via ssh, sur le même hôte (c'est ce que localhost est, le même hôte). Si vous remplacezlocalhost
par un autre hôte, cela aurait plus de sens (mais si vous essayez cela pour apprendre à le faire, c'est ok).Une fois que vous avez une copie de votre clé publique sur l'hôte distant (ou la même que celle dans laquelle vous vous trouvez), vous devez vous assurer que vous l'utilisez pour l'authentification, dans votre hôte réel, en appelant
ssh-agent
/ssh-add
:Ensuite, si vous avez fourni une phrase secrète, vous serez invité à la saisir après
ssh-add
. Si vous avez généré une clé privée sans phrase secrète, c'est tout.la source
ssh-add
, veuillez modifier votre question et mettre tout ce que vous avez fait. Plus vous donnez d'informations, meilleure et plus rapide est la réponse.eval
"?J'ai découvert le problème.
Exécution du serveur avec débogage:
J'ai trouvé qu'il n'était pas en mesure de lire l'auth_key
A corrigé.
la source
Effectuez les étapes suivantes
Utilisez le fichier par défaut et la phrase secrète vide (appuyez simplement sur Entrée dans les 2 étapes suivantes)
Copiez le contenu de ~ / .ssh / id_rsa.pub dans ~ / .ssh / authorized_keys
Assurez-vous que les autorisations sont les suivantes
Assurez-vous également que les autorisations pour le répertoire .ssh sont. C'est aussi important
la source
authorized_keys
sur 0600 résout le problème, tandis que l'autorisation du.ssh
répertoire n'a aucun effet sur le shing localhostSimplifiez la configuration du serveur
Je pense que vous devrez peut-être désactiver l'authentification par mot de passe. Ceci est un sshd_config que j'utilise
Essayez d'abord quelque chose de minimal, puis ajoutez-le car vous avez besoin de capacités supplémentaires.
Mise à jour:
Vérifier les journaux du serveur
De votre EDIT3, je vois que l'authentification par clé publique échoue avant que le client ne tente l'authentification par mot de passe. Le syslog de votre serveur peut contenir des messages de sshd qui éclairent cela.
Recharger les configurations modifiées
N'oubliez pas de signaler
sshd
de recharger les modifications de configuration. Par exemplekill -HUP $(cat /etc/sshd.pid)
la source
Concernant le post ci-dessus, face au même problème, je viens de changer de ligne
dans le fichier / etc / ssh / sshd_config et cela a fonctionné.
De plus, il vaut peut-être mieux utiliser
pour recharger les changements de configuration de sshd.
la source
Une autre solution pour la fonctionnalité SELinux de Red Hat Enterprise Linux 6.5 empêchant sshd de lire $ HOME / .ssh consiste à utiliser restorecon, voir mon répondeur ici /superuser//a/764020/213743 .
la source
Pour moi, c'était aussi simple que
la source
J'ai eu le même problème, j'ai suivi 3 étapes pour créer le mot de passe sans connexion et cela fonctionne bien
la source