web-dev-qa-db-fra.com

Comment ssh à localhost sans mot de passe?

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: 
50
canesin

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 
123
user2402070

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.

16
canesin

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
12
shipr

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
5
swatisinghi

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é.

4
Rohit Patwa

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
1
J.stack

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/

1
nachoparker

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:

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

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

0
Don Davis

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.

0
LazyRay