web-dev-qa-db-fra.com

L'authentification des touches SSH continue de demander un mot de passe

Je suis en train d'essayer de définir l'accès de Servera (Sunos) sur Serverb (certains Linux personnalisés avec connexion interactive du clavier) avec des touches SSH. Comme une preuve de concept, j'ai pu le faire entre 2 machines virtuelles. Maintenant, dans mon scénario de vie réel, cela ne fonctionne pas.

J'ai créé les clés de Servera, les copiées sur Serverb, chmod'd .sh dossiers à 700 sur Servera, b.

Voici le journal de ce que je reçois.

    debug1: SSH2_MSG_KEXINIT sent
    debug1: SSH2_MSG_KEXINIT received
    debug1: kex: server->client aes128-ctr hmac-md5 none
    debug1: kex: client->server aes128-ctr hmac-md5 none
    debug1: Peer sent proposed langtags, ctos:
    debug1: Peer sent proposed langtags, stoc:
    debug1: We proposed langtags, ctos: en-US
    debug1: We proposed langtags, stoc: en-US
    debug1: SSH2_MSG_KEX_DH_GEX_REQUEST sent
    debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
    debug1: dh_gen_key: priv key bits set: 125/256
    debug1: bits set: 1039/2048
    debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
    debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
    debug1: Host 'XXX.XXX.XXX.XXX' is known and matches the RSA Host key.
    debug1: Found key in /XXX/.ssh/known_hosts:1
    debug1: bits set: 1061/2048
    debug1: ssh_rsa_verify: signature correct
    debug1: newkeys: mode 1
    debug1: set_newkeys: setting new keys for 'out' mode
    debug1: SSH2_MSG_NEWKEYS sent
    debug1: expecting SSH2_MSG_NEWKEYS
    debug1: newkeys: mode 0
    debug1: set_newkeys: setting new keys for 'in' mode
    debug1: SSH2_MSG_NEWKEYS received
    debug1: done: ssh_kex2.
    debug1: send SSH2_MSG_SERVICE_REQUEST
    debug1: got SSH2_MSG_SERVICE_ACCEPT
    debug1: Authentications that can continue: publickey,keyboard-interactive
    debug1: Next authentication method: publickey
    debug1: Trying private key: /XXXX/.ssh/identity
    debug1: Trying public key: /xxx/.ssh/id_rsa
    debug1: Authentications that can continue: publickey,keyboard-interactive
    debug1: Trying private key: /xxx/.ssh/id_dsa
    debug1: Next authentication method: keyboard-interactive
    Password:
    Password:

Serverb a des actions assez limitées depuis son propriétaire personnalisé Linux.

Qu'est-ce qui pourrait se passer?

Modifier avec réponse:

Le problème était que je n'ai pas eu ces paramètres activés dans le SSHD_Config (reportez-vous à la réponse acceptée) et que tout en collant la clé de Servera sur serveur, il interpréterait la clé sous forme de 3 lignes distinctes.

Ce que j'ai fait était, au cas où vous ne pouvez pas utiliser SSH-Copy-ID comme je ne pouvais pas. Coller la première ligne de votre clé de votre fichier "Serverb" Autorisé_keys Fichier sans 2 derniers caractères, puis vous saisissez les caractères manquants de la ligne 1 et du premier à partir de la ligne 2, cela empêchera d'ajouter une "nouvelle ligne" entre le premier et deuxième ligne de la clé. Répétez avec la ligne 3D.

5
Rhyuk

Je ne pense pas que vos clés ont été correctement copiées, si vous avez ssh-copy-id disponible Je vous recommanderais d'utiliser cela.

$ ssh-copy-id user@remote_server
Password:

Une fois que vous avez entré le mot de passe, votre clé SSH sera copiée et vous devriez être capable de simplement vous fournir le mot de passe à nouveau.

Vérifiez également votre configuration SSH sur serveurb et vérifiez quelques points.

$ vi /etc/ssh/sshd_config

Une autre chose est de vérifier ces paramètres:

RSAAuthentication yes
PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

La valeur de autorisékeysfile est l'endroit où vous devez coller votre clé SSH publique.

Vous pouvez collecter vos informations clés SSH à l'aide de: ssh-add -L

mise à jour

Lorsque ssh-copy-id n'existe pas que vous pouvez faire l'ancienne façon:

$ cat ~/.ssh/id_rsa.pub | ssh user@remote_Host 'cat >> /home/user/.ssh/authorized_keys'
10
ash

Votre journal de débogage indique que le serveur n'a accepté aucune de vos clés RSA privées. Vous devez spécifier le fichier de clés correct spécifique ou vérifier que le serveur a le bon fichier de clé publique.

Comme @Fredrik a dit, les autorisations sur les fichiers peuvent également jouer un rôle. SSH refusera d'utiliser des entrées clés publiques que d'autres peuvent écrire à des inscriptions clés privées que les autres peuvent lire.

3
Jeff Ferland

Vous devriez vérifier l'autorisation des fichiers sur la machine distante à l'aide de ls -l ~/.sshEt place la permission:
[.____] chmod 600 ~/.ssh/authorized_keys
[.____] chmod 600 ~/.ssh/<private_key> Ex: chmod 600 ~/.ssh/id_rsa
[.____] chmod 700 ~/.ssh/<public_key> Ex: chmod 700 ~/.ssh/id_rsa.pub
[.____] chmod 700 /home/vmirea/.ssh

2
Viorel Mirea

Basé sur ce qui précède, je ne peux pas dire quel est le problème. Cependant, la plupart des moments où j'ai rencontré cela, la raison a été que les clés ont eu que leurs droits soient déterminés à être trop lisibles (comme dans la lecture du groupe ou d'une autre, pas seulement de l'utilisateur). C'est là que je commencerais à chercher.

2
Fredrik

Ces problèmes (qui sont Les autorisations généralement liées) sont beaucoup plus facilement déboguées du côté serveur. Je vous recommande de démarrer un autre sshd en mode de débogage avec: /usr/sbin/sshd -d -p 2222 qui va démarrer un autre sshd sur le port 2222, puis exécuter ssh -p 2222 user@sshserver du côté du client. Regardez ce qui sort du SSHD lorsque votre client essaie d'authentifier.

Les problèmes d'autorisations ne doivent pas nécessairement être simplement /home/$USER/.ssh. Cela pourrait aussi être un problème avec /, /home, ou /home/$USER. Si l'un de ceux-ci est en écriture de groupe, cela peut être un problème.

Un autre problème courant est que vous mettez mal-coller et de mettre des chevreakes au milieu de votre clé dans le fichier autorisé_keys

2
stew

Le moyen le plus simple de configurer les clés est en cours d'exécution

ssh-copy-id <remotehost>

sur la machine qui se connectera (votre poste de travail par exemple)

Il devrait demander votre mot de passe, puis copier votre clé et configurer les autorisations de manière appropriée.

1
Adrian Mester