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, le mot de passe est toujours demandé! Comment résoudre ce problème? Ubuntu-10.04, OpenSSH_5.3p1
EDIT2:
Ajout de quelques 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
EDIT3: résultat d'annonce 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:
J'ai suivi les 3 étapes pour créer le mot de passe sans connexion
1. ssh-keygen -t rsa
Press enter for each line
2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3. chmod og-wx ~/.ssh/authorized_keys
J'ai découvert le problème.
Exécuter le serveur avec le débogage:
$sshd -Dd
J'ai trouvé qu'il n'était pas capable de lire l'auth_key
$chmod 750 $HOME
Fixe le.
Un autre possible answer: le fichier allowed_keys peut exister et être lisible. Mais si le groupe ou le monde peut y écrire, il demandera toujours le mot de passe. La réponse à ce problème est
chmod og-wx ~/.ssh/authorized_keys
Faire les étapes suivantes
ssh-keygen -t rsa -C "[email protected]"
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.
Utilisez le fichier par défaut et une phrase secrète vide (appuyez simplement sur Entrée au cours des 2 prochaines étapes)
# start the ssh-agent in the background
eval "$(ssh-agent -s)"
# Agent pid 59566
ssh-add
Copiez le contenu de ~/.ssh/id_rsa.pub dans ~/.ssh/registered_keys
Assurez-vous que les autorisations sont les suivantes
ls -l .ssh/
total 20
-rw-r--r--. 1 swati swati 399 May 5 14:53 authorized_keys
-rw-r--r--. 1 swati swati 761 Jan 12 15:59 config
-rw-------. 1 swati swati 1671 Jan 12 15:44 id_rsa
-rw-r--r--. 1 swati swati 399 Jan 12 15:44 id_rsa.pub
-rw-r--r--. 1 swati swati 410 Jan 12 15:46 known_hosts
Assurez-vous également que les autorisations pour le répertoire .ssh sont. C'est aussi important
drwx------. 2 swati swati 4096 May 5 14:56 .ssh
Deux étapes simples:
ssh-keygen -t rsa <Press enter for each line>
ssh-copy-id localhost
Entrez le mot de passe et vous avez terminé.
comme le fait la réponse acceptée, si vous rencontrez un problème de
Agent admitted failure to sign using the key.
tu dois
ssh-add
La manière correcte et sûre de le faire est de copier les clés, comme cela a été dit ici.
Dans d'autres cas, sshpass
peut être pratique.
sshpass -p raspberry ssh [email protected]
Gardez à l'esprit que ce n'est pas du tout sécuritaire. Même si ce n’est pas une bonne idée de l’utiliser dans des environnements sécurisés, cela peut être utile pour les scripts, les tests automatisés, etc.
cela peut être combiné avec
ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]
pour éviter les questions de confirmation qui empêchent la création de scripts.
Encore une fois, utilisez-le uniquement dans les systèmes de développement où différentes machines partagent une adresse IP et où la sécurité n’est pas importante.
https://ownyourbits.com/2017/02/22/easy-passwordless-ssh-with-sshh/
Même après avoir suivi toutes les recommandations, j’ai fait face au même problème, mais j’ai découvert qu’il s’agissait d’une interférence gnome-keyring.
Solution:
Sur Centos 7
SOLUTION
1 create rsa key
2 vim /etc/ssh/ssh_config
3
# IdentityFile ~/.ssh/identity
uncoment this line > IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
# IdentityFile ~/.ssh/id_ecdsa
Note * Je l'ai fait après avoir copié la clé et certaines des réponses avant celle-ci. Mais je suis à peu près sûr que c’est tout ce que vous avez à faire, mais si ce n’était pas le cas, j’ajouterais la clé rsa à allowed_keys et lancerais le
ssh-copy-id au nom d'utilisateur @ localhost
J'ai résolu le problème de connexion SSH de cette façon.
Je génère les paires de clés côté serveur, puis scp renvoie la clé privée sur mon ordinateur Windows 10 et je peux maintenant me connecter sans mot de passe.
Auparavant, j'utilisais des paires de clés générées par mon ordinateur portable Windows 10 et il n'y avait aucune chance.