Publier id_rsa.pub pour une configuration plus facile de nouveaux environnements?

20

Pour faciliter la configuration de SSH sans mot de passe sur de nouvelles machines et de nouveaux environnements, y a-t-il une raison pour laquelle le id_rsa.pubfichier (juste la moitié publique de la paire de clés) n'a pas pu être publié quelque part sur le Web? Par exemple, dans un référentiel GitHub dotfiles.

Je suis conscient que:

  • le id_rsafichier (la moitié privée de la paire de clés) doit être soigneusement gardé et
  • la paire de clés doit être protégée par une phrase secrète

Mais mes recherches n'ont révélé aucun conseil explicite selon lequel cela est autorisé ou encouragé.

Par curiosité, le même conseil serait-il valable pour une paire de clés sans phrase secrète?

DouglasDD
la source
2
Bien que cela puisse être sûr dans le cas général (en supposant une clé correctement générée), des failles ont existé dans le passé (le célèbre bogue Debian OpenSSH ) qui restreignaient sévèrement l'espace de clé et laissaient la clé privée devinable en fonction de la clé publique. Donc , il y a toujours ce risque - comment voulez - vous savoir que votre SSH ne keygen souffre pas d'un défaut similaire?
Bob
2
Un mécanisme existe déjà: ssh-import-id
MikeyB
afin que vous puissiez partager id_rsa.pub entre les machines?
Federico

Réponses:

26

RSA est spécialement conçu pour vous permettre de partager cette clé publique, donc oui, vous pouvez la publier. Ceci est assez similaire au fonctionnement de x.509 (et SSL) avec les certificats RSA.

Avant de publier le fichier, regardez-le; les seules choses qui doivent y être sont le mot-clé "ssh-rsa" et la clé encodée en base64. Vous voudrez peut-être en rester là (je pense que c'est la valeur par défaut maintenant).

Cela est vrai que la clé ait ou non une phrase secrète. Une phrase secrète crypte la clé privée et n'affecte pas la clé publique.

Assurez-vous, comme toujours, que votre clé est suffisamment entropique et large. S'il est généré par un PRNG cassé, il peut être prévisible. Cependant, publier cela ne présente pas beaucoup de risques supplémentaires, car si l'espace de clés est si petit, un attaquant pourrait simplement essayer avec toutes les clés de l'espace de clés énuméré jusqu'à ce qu'il obtienne la bonne.

Je suggère d'utiliser une clé de 4096 bits (spécifiez -b 4096), de sorte qu'il sera plus difficile que d'habitude (la valeur par défaut est 2048) pour quelqu'un d'inverser votre clé publique en une clé privée. C'est le seul risque important à faire cela, et ce n'est pas très grand car l'algorithme est spécifiquement conçu pour le rendre impraticable.

Falcon Momot
la source
33

C'est déjà le cas. :) Il suffit de mettre ".keys" à la fin de l'URL de votre profil Github, comme ceci:

https://github.com/tjmcewan.keys

tjmcewan
la source
Thant est vraiment intéressant. Pourquoi GitHub expose-t-il cela?
richardneish
Commodité. :) C'est une clé publique, après tout - elle est destinée à être partagée. Il est désormais beaucoup plus facile de récupérer la clé d'un nouveau collaborateur et de l'ajouter à vos serveurs. Enregistre le courrier électronique.
tjmcewan
Je ne savais pas qu'ils avaient fait ça.
Zeb
1
+1 pour la découverte intéressante sur Github.
Raymond Tau
5

Bien que, en règle générale, je ne recommande pas de mettre votre propre configuration spécifique dans les référentiels de projets publics (en supposant que le dépôt est pour tout le monde et que votre configuration est pour vous seul , c'est juste un peu grossier), les implications pour la sécurité sont minimes.

Le seul vecteur d'attaque raisonnable utilise en quelque sorte cette clé publique pour vous identifier dans un contexte malveillant. Ce que cela pourrait être me dépasse, mais la clé publique identifie de manière unique la clé privée, bien qu'elle ne donne aucune indication quant à son origine.

Il y a un vecteur d'attaque de cas d'angle qui ne s'applique probablement pas, mais si vous vous souvenez du fiasco avec Debian rompant accidentellement le PRNG openssl , toute clé ssh générée sur un système affecté est facilement prévisible et peut être identifiée par sa clé publique. Donc, dans ce cas, la publication de la clé publique pourrait vous poser des problèmes. Ou de façon plus appropriée, l' utilisation de cette clé pour n'importe quoi pourrait vous causer des ennuis.

tylerl
la source
vecteur 1. que diriez-vous de collision d'empreintes digitales? elle est beaucoup plus courte que la clé publique elle-même; vecteur 2 mim attaque comme "oops serveur a dû être réinstallé il a une clé différente, mais veuillez vous connecter quand même" et fausse authentification réussie pour les clés publiques des utilisateurs donnés (si cela est possible, je ne suis pas sûr)
1

Oui, vous pouvez publier votre clé de pub SSH. Et vous pouvez publier une empreinte digitale du serveur en utilisant l' enregistrement SSHFP dans DNS! Cela peut être très pratique, par exemple, si vous devez mettre à jour / modifier la clé SSH d'un serveur.

jldugger
la source