1 votes

Configurer une machine pour utiliser une clé via SSH

Je suis en train d'essayer de configurer une clé entre ma machine Ubuntu et mon serveur web afin de pouvoir m'y connecter en SSH sans avoir besoin de taper un mot de passe à chaque fois.

J'ai suivi le tutoriel trouvé ici - http://www.csua.berkeley.edu/~ranga/notes/ssh_nopass.html - à la lettre.

Alors que tout semblait fonctionner, lorsque j'essaie de me connecter en SSH sur le serveur la prochaine fois, il me demande toujours un mot de passe.

Ma première question est que la raison pour laquelle je fais cela est de pouvoir me connecter en SSH sur un site spécifique de mon serveur, j'ai donc configuré tout cela sur le serveur en utilisant le nom d'utilisateur associé au site (dans ce cas tosbourn) est-ce correct ou aurais-je dû utiliser root sur le serveur ?

La deuxième question est que parce que sur ma machine mon nom d'utilisateur est différent (il s'agit de toby) je pense que cela pourrait empêcher le fonctionnement, ai-je raison dans cette supposition ou cela ne devrait pas poser problème ?

Actuellement, les répertoires home sur ma machine locale et sur le serveur ont tous les deux un dossier .ssh et j'ai copié le fichier requis et renommé en authorized_keys (et keys2).

Toute aide serait grandement appréciée.

3voto

Gowri Points 931

Une chose à vérifier sont les permissions sur le fichier clé sur le serveur. J'ai trouvé dans le passé que sshd n'utilisera pas le fichier authorized_keys sauf si les permissions sont fortement restreintes.

chmod 600 ~/.ssh/authorized_keys

devrait régler le problème.

En passant, j'utilise des clés générées par PuTTY pour accéder à un serveur Linux (Slackware) et tout fonctionne bien.

1voto

jms Points 318
  • L'utilisation d'un utilisateur normal est bonne et même préférée. Vous pourriez même envisager de désactiver les connexions root sur le serveur.
  • Si vos noms d'utilisateur diffèrent d'une machine à l'autre, vous devez spécifier le nom d'utilisateur sur votre ligne de commande ssh (ou dans votre fichier ~/.ssh/config) : ssh -l nom_utilisateur nom_hôte.

Sur votre serveur, vérifiez les journaux système dans /var/log. Je ne suis pas sûr où les tentatives de connexion échouées sont enregistrées sur votre machine, mais recherchez les fichiers journaux qui ont été modifiés récemment après une tentative de connexion échouée et vous devriez pouvoir trouver quelque chose.

Si cela n'a pas aidé, essayez d'obtenir une sortie verbose de ssh : ssh -v -l nom_utilisateur nom_hôte. La sortie est difficile à lire et à comprendre, mais cela pourrait vous donner un indice sur ce qui aurait pu se passer.

Il vaut également toujours la peine de vérifier que la clé publique que vous avez mise sur votre serveur ne s'est pas retrouvée là en plusieurs lignes. Une clé publique = une seule ligne dans le fichier authorized_keys.

Enfin, êtes-vous sûr que les connexions par clé publique sont activées sur votre serveur ?

1voto

Dave Sherohman Points 25122

J'ai eu des problèmes avec les clés sur un serveur sous Ubuntu. Une façon de tester consiste à faire cela sur le serveur :

sudo /usr/sbin/sshd -d -p [some port]

Et ensuite se connecter en utilisant

ssh -v server.url -p [same port]

Cela devrait vous donner des informations de débogage des deux côtés. Le processus sshd sera probablement plus intéressant car il vous dira pourquoi il rejette la clé.

Ma solution a simplement été d'abandonner et de déplacer les clés autorisées vers /etc/ssh/users/[user name]/authorized_keys puis changer le paramètre AuthorizedKeysFile de /etc/ssh/sshd_config :

AuthorizedKeysFile /etc/ssh/users/%u/authorized_keys

C'est un peu une solution de force brute, mais cela pourrait résoudre votre problème.

0voto

Joseph Points 246

Je parlais aux hôtes et il semblerait que la clé que je génère doit être faite dans Putty sur une machine Windows, puis convertie pour fonctionner sur ma machine Ubuntu. Ça ne semble pas correct mais je vais essayer et voir ce qui se passe!

Merci encore à Manni pour la réponse.

0voto

Scott James Points 521

Sur le client, faire :

ssh-keygen

(sans phrase secrète)

et ensuite :

ssh-copy-id nom_utilisateur@serveur

Cela devrait configurer la connexion par clé.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X