Comment ssh pour localhost sans mot de passe?

EDIT: Mettre exactement ce qui a été fait

J’ai besoin de SSH localhost sans mot de passe, la manière habituelle de le faire (avec les 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:~$ 

Donc, 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 

EDIT3: Ading result from $ 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 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 

Avoir découvert le problème.

Exécution du serveur avec le débogage:

 $sshd -Dd 

Je l’ai trouvé incapable de lire l’auth_key

 $chmod 750 $HOME 

Corrigé

Autre réponse possible : le fichier authorized_keys peut exister et être lisible. Mais s’il est inscriptible en groupe ou en écriture, il demandera toujours le mot de passe. La réponse à ce problème est

 chmod og-wx ~/.ssh/authorized_keys 

Effectuez les étapes suivantes

 ssh-keygen -t rsa -C "your_email@example.com" # 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 le mot de passe vide (appuyez simplement sur Entrée dans les 2 étapes suivantes)

 # 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 / authorized_keys

Assurez-vous que les permissions 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 permissions pour le répertoire .ssh sont. Ceci est également important

 drwx------. 2 swati swati 4096 May 5 14:56 .ssh 

Deux étapes simples:

 ssh-keygen -t rsa  ssh-copy-id localhost 

Entrez le mot de passe et vous avez terminé.

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, le sshpass peut être pratique.

 sshpass -p raspberry ssh pi@192.168.0.145 

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, il peut être utile pour les scripts, les tests automatisés …

cela peut être combiné avec

 ssh -q -o UserKnownHostsFile=/dev/null -o SsortingctHostKeyChecking=no pi@192.168.0.145 

pour éviter les questions de confirmation qui empêchent les scripts de se produire.

Encore une fois, ne l’utilisez que dans des systèmes de développement où différentes machines partagent une IP et la sécurité n’est pas importante.

https://ownyourbits.com/2017/02/22/easy-passwordless-ssh-with-sshh/

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 

J’ai été confronté au même problème même après avoir suivi toutes les recommandations, mais j’ai découvert que le problème était lié aux interférences de gnome-keyring.

Solution:

  1. Aller à la recherche, recherchez «Applications de démarrage»
  2. Si vous voyez «Agent SSH Key», décochez la case
  3. Redémarrez la machine et connectez-vous à localhost.

J’ai résolu le problème de connexion ssh de cette façon.

Je génère les paires de clés sur mon serveur, puis récupère la clé privée sur mon ordinateur Windows 10 et je peux maintenant me connecter sans mot de passe.

Auparavant, j’ai utilisé des paires de clés générées par mon ordinateur portable Windows 10 et il n’y avait pas de chance du tout.