Où doit être mon fichier allowed_keys si je veux ssh vers `localhost`?

Jai configuré ma clé publique / privée, mais je ne sais pas où elle doit aller. Ces deux fichiers doivent-ils être placés dans ~/.ssh/ pour mon utilisateur?

Réponse

La clé privée reste à la maison. La clé publique se déplace:

  • Placez votre clé privée dans ~/.ssh (hôte local). Ce sera généralement ~/.ssh/id_rsa.
  • Placez votre clé publique dans ~/.ssh/authorized_keys (hôte distant).

Alors que la première étape est généralement effectuée automatiquement lorsque vous créez le clé, la seconde peut être accomplie via:

$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost 

Si vous avez une configuration résiduelle concernant lhôte distant, vous pourriez rencontrer des problèmes avec cela (échec de lauthentification ou « trop déchecs dauthentification » ). Pour résoudre ce problème, vous pouvez forcer ssh-copy-id à utiliser lauthentification par mot de passe avec:

$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost 

Bien sûr, o Une fois que vos clés sont correctement placées, il nest plus nécessaire de mot de passe:

$ ssh user@remotehost 

Vous pouvez également ajouter une configuration SSH dans ~/.ssh/config pour le rendre encore plus simple:

Host [custom name for the remote machine] Hostname [remote hostname or IP] User [remote username] IdentityFile /home/[your local user]/.ssh/id_rsa 

Grâce à cela, vous pouvez simplement taper ce qui suit pour vous connecter à lhôte distant:

$ ssh [custom name for the remote machine] 

Edit: si les deux machines (locale et distante) sont identiques, vous pouvez simplifier la procédure avec:

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

Ceci ajoutera votre clé publique au fichier authorized_keys. Bien sûr, une autre façon de vous connecter en tant que quelquun dautre sur votre machine locale est dutiliser:

$ su [another user] 

Cela vous fera économiser la transaction SSH là où vous nen aurez peut-être pas besoin . Sans mot de passe su peut être configuré à laide de sudo :

$ sudo -iu [another user] 

Commentaires

  • Est-ce la même chose si je veux ssh localhost?
  • @MrDuk Dans ce cas, les deux extrémités locale et distante sont la même machine. Par conséquent, vous devez avoir votre clé publique dans ~/.ssh/authorized_keys localement. Pour cela, vous pouvez simplement utiliser cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys. Jai modifié ma réponse.
  • Peut-être que les choses ont changé depuis votre réponse, mais javais besoin dajouter un -i à votre première commande, pour que la commande entière ressemble à $ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *