Les keys SSH publiques ne fonctionnent pas pour tous les users sur le même server

J'ai un VPS sur lequel j'ai plusieurs "users" (tous moi, pour différentes choses). J'ai configuré mes keys publiques SSH locales et utilisé ssh-copy-id pour les copyr sur toutes. Je ne peux pas me connecter sans une invite de mot de passe seulement pour certains d'entre eux, et cela me rend fou.

J'ai utilisé ssh -v user@host.ip.address pour celui qui fonctionne, et celui qui ne fonctionne pas. Le text de sortie est EXACTEMENT le même jusqu'à la fin de la fin:

Celui qui fonctionne ressemble à ceci:

debug1: Next authentication method: publickey debug1: Offering RSA public key: /home/tom/.ssh/id_rsa debug1: Server accepts key: pkalg ssh-rsa blen 279 debug1: Authentication succeeded (publickey). Authenticated to xxx.xxx.xxx.xxx ([xxx.xxx.xxx.xxx]:22). debug1: channel 0: new [client-session] debug1: Entering interactive session. debug1: Sending environment. debug1: Sending env LANG = en_US.UTF-8 

Celui qui ne ressemble pas à ceci:

 debug1: Next authentication method: publickey debug1: Offering RSA public key: /home/tom/.ssh/id_rsa debug1: Authentications that can continue: publickey,password,keyboard-interactive debug1: Trying private key: /home/tom/.ssh/id_dsa debug1: Trying private key: /home/tom/.ssh/id_ecdsa debug1: Next authentication method: keyboard-interactive debug1: Authentications that can continue: publickey,password,keyboard-interactive debug1: Next authentication method: password 

J'ai vérifié que les permissions de key et de file dans authorized_keys sont identiques pour chaque user et le dossier .ssh, mais pour une raison quelconque, le server n'accepte pas la même key exacte, qui est la même key exacte stockée sur le server.

J'ai essayé de redémarrer le démon sshd ainsi que le server.

Je crois que vous devriez inspecter votre file authorized_keys sur le server. Sur la plupart des systèmes où j'ai vu ssh-copy-id, c'est un script très basique avec beaucoup de vérification des erreurs.

À plusieurs resockets, je l'ai vu créer des inputs en double ou créer des inputs brisées dans le file authorized_keys . Je l'ai vu download une autre key, puis ce qui était attendu.

Pour get les meilleurs résultats lors de l'utilisation de ssh-copy-id vous devez utiliser l'option -i pour identifier explicitement la partie publique de la key que vous souhaitez download. Si vous ne select pas l'option -i, vous choisirez le premier file à partir de quelques locations, y compris à partir d'un socket d'agent SSH.

Prenez quelques secondes pour inspecter le script ssh-copy-id sur votre système et vous verrez presque certainement ce dont je parle.

Pas vraiment une réponse personnelle, mais pas assez pour un commentaire sur la réponse de Zoredache.

Je voudrais append que, en plus de vérifier les permissions et la propriété du file, le directory et les directorys parents, vérifiez le contenu du file. Selon la façon dont vous avez construit le file, il se pourrait que la key soit stockée en tant que plusieurs lignes au lieu d'une seule ligne.

J'ai eu ce problème de copyr et de coller des keys d'un file à l'autre, et parce que les lignes ont la même longueur que l'autowrap du terminal, il peut être difficile à détecter.