ssh request un mot de passe malgré ssh-copy-id

J'utilise depuis un certain time déjà l'authentification par key publique sur un server distant pour l'utilisation de shell distant, ainsi que pour les assemblys sshfs. Après avoir forcé un déassembly de mon directory sshfs, j'ai remarqué que ssh commençait à me requestr un mot de passe. J'ai essayé de purger la télécommand .ssh / authorized_keys de toute mention de la machine locale, et j'ai nettoyé la machine locale de references à la machine distante. J'ai ensuite répété mon ssh-copy-id, il m'a demandé un mot de passe et est revenu normalement. Mais voici, quand je ssh sur le server distant, je suis toujours invité à entrer un mot de passe. Je suis un peu confus quant à ce que le problème pourrait être, des suggestions?

sshd devient bizarre à propos des permissions sur $ HOME, $ HOME / .ssh (les deux directorys) et sur $ HOME / .ssh / authorized_keys.

Une de mes boîtes linux a fini avec les permissions drwxrwxrwx sur mon directory $ HOME. Une boîte Linux Arch ne se connecterait absolument pas à l'aide de keys publiques tant que je n'aurais pas supprimé l'autorisation 'w' pour le groupe, l'autre sur mon directory $ HOME.

Essayez de faire $ HOME et $ HOME / .ssh / avoir des permissions plus ressortingctives pour le groupe et d'autres. Voyez si cela ne permet pas à sshd de faire ses affaires.

Les permissions suivantes sont nécessaires:

  • Le dossier .ssh : 700 (drwx------)
  • La key publique: 644 (-rw-r--r--)
  • La key privée: 600 (-rw-------)

J'ai récemment rencontré ce problème aussi.

Il a été corrigé en modifiant les permissions du directory $HOME . Cependant, il suffit de lancer chmod gw ~/ n'a pas corrigé le problème. En plus de chmod gw ~/ j'ai aussi besoin de modifier les permissions des others sur le directory $HOME en exécutant chmod o-wx ~/

Ensemble:

 chmod gw ~/ chmod o-wx ~/ 

Notez que je ne suis pas sûr si le ox était nécessaire, je l'ai simplement couru par précaution.

Le problème se produit-il également sur les connections parallèles, c'est-à-dire si vous essayez de monter sshfs en ayant une session ssh ouverte? Si non, alors je suppose que vous avez votre directory de base crypté? Dans ce cas, $HOME/.ssh/authorized_keys ne sera utilisable sur la machine distante qu'après votre première connection (en utilisant votre mot de passe).

Consultez https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Troubleshooting pour get une explication et la solution de contournement requirejse.

Changer les permissions pour le dossier ~ / .ssh a résolu mon problème selon ce post sur Super User SE .

Je publierais ceci comme un commentaire, mais ce serait probablement trop long. Je voulais juste append que ssh-copy-id tente d'envoyer la key publique à partir de l'location /.ssh dans votre dossier $HOME .

Si vous essayez d' ssh tant que root avec une key publique (enregistrez les commentaires liés à la security), ssh-copy-id pourrait essayer de vous connecter avec la mauvaise key publique si votre variable $HOME est autre que /root telles que le directory de base de votre user normal), l'user root recevra alors une invite car la key publique de root n'est pas installée sur le système distant.

Vous pouvez utiliser la ligne de code suivante pour spécifier la key publique exacte:

pub="$(cat /root/.ssh/id_rsa.pub)"; ssh user@remotehost "echo $pub >> .ssh/authorized_keys; chmod 700 .ssh; chmod 600 .ssh/authorized_keys"

J'ai rencontré ce scénario à l'état sauvage plusieurs fois (y compris ce matin) et j'ai pensé que j'essaierais de mettre mes 2 cents, au cas où quelqu'un se findait dans la même situation.

Comme d'autres consortingbuteurs mentionnés, c'est probablement un problème d'autorisation.

La meilleure façon de diagnostiquer ceci est de redémarrer le démon SSH sur le server distant avec l'option de debugging activée – généralement l'option "-d". Le message du démon OpenSSH est très explicite. Par exemple, vous verrez des messages tels que:

 Authentication refused: bad ownership or modes for directory /some/path