Je suppose que lorsque vous installez d'abord le gemme Heroku et que vous êtes invité à mettre votre nom d'utilisateur / mot de passe, il envoie ce nom d'utilisateur / mot de passe à son serveur pour valider. P>
Comment puis Heroku (ou toute autre application de ligne de commande pour cette matière) stocke correctement ce jeton validé sur le système de fichiers, puis la transmet ensuite lorsqu'il exécute d'autres commandes telles que «Heroku Create 'pour validation? P>
J'utilise Heroku comme exemple ici parce que c'est le seul que je puisse penser à ce que je voudrais faire ce que j'aimerais faire pour le moment. P>
4 Réponses :
Heroku utilise votre connexion une fois pour déterminer qui vous êtes, puis envoie votre clé SSH publique à leur serveur, alors lorsque vous appuyez sur leur repo Git, ils savent qui vous êtes ( docs ). P>
D'autres applications gérer les choses différemment. Certains créent un .
Cela dépend de la mise en œuvre. P>
Un moyen courant de faire quelque chose comme ceci est de stocker une paire de clé générée automatiquement dans un fichier temporaire. La clé publique est transmise au serveur et la clé privée est cryptée avec une clé de session symétrique (qui expire après une courte durée, ou lors de la déconnexion). P>
Le champ d'autorisations de ce fichier est défini sur R -------- (lecture seule par l'utilisateur.) P>
/ TMP est généralement utilisé car de nombreux systèmes d'exploitation le nettoient périodiquement. (Certains utilisent même un périphérique en mémoire.) P>
Les implémentations peuvent différer, par exemple, les touches SSH sont généralement générées une seule fois, non cryptées avec une clé de session (mais peuvent expirer) et sont stockées dans ~ / .SSH. P>
Le gemme Heroku stocke vos informations d'identification dans
Ce n'est plus correct, Taytay a la bonne réponse ci-dessous
Heroku époque maintenant comment ils stockent leur authentification pour le héroku cli dans de très bons détails ici: https://devcenter.heroku.com/articles/authentication
extraits pertinents: p>
Stockage de jeton API P>
L'outil de ligne de commande Heroku stocke des jetons API dans la norme UNIX Fichier ~ / .netrc. Le format NETRC est bien établi et bien soutenu par divers outils de réseau sur UNIX. Avec des informations d'identification de Heroku stockées dans Ce fichier, d'autres outils tels que CURL peuvent accéder à l'API Heroku avec peu ou pas de travail supplémentaire. p> blockQuote>
xxx pré> p>
Heroku a également publié un rubygem pour la manutention .netrc code> fichiers: Github.com/heroku/netrc
En regardant auth.rb (suggestion de Fixlr ci-dessous), je réalise que Heroku n'envoie pas seulement à votre clé de cendre publique, mais aussi de stocker un jeton API. Pourquoi ont-ils deux formes d'authentification distinctes? Ne serait-il pas suffisant?