Wie schütze ich meine privaten Schlüssel, wenn ich github, heroku verwende und lokal entwickle?

8

Momentan lege ich die Schlüssel, die ich verwende, um auf andere APIs und dergleichen zuzugreifen, in der Datei environment.rb ab. So ist es verfügbar, wenn ich lokal und auch auf Heroku laufe.

Ich möchte jedoch beginnen, meinen Code über github öffentlich zugänglich zu machen, damit ich Hilfe bekommen kann.

Was sind die Schritte, die ich tun muss, um dies zu erreichen, insbesondere, damit ich lokal testen kann und auf Heroku testen kann.

Es scheint, als ob es einen Weg auf Heroku gibt, die Schlüssel von einer Befehlszeile aus hinzuzufügen, damit sie nicht in der Ruby-on-Rails-App gespeichert werden müssen. Aber was ist mit lokaler Entwicklung?

    
Angela 16.09.2010, 23:24
quelle

3 Antworten

4

Verschiebe sie zu einem Initialisierer und füge die Datei zu .gitignore

hinzu

BEARBEITEN:

Es gibt ein Verzeichnis in der Config mit dem Namen initializers. Hier platzieren Sie Code, der beim Start Ihrer Anwendung einmal ausgeführt werden soll. In der Vergangenheit wurde environment.rb für diese Einstellungen verwendet, aber Initialisierer sorgen für eine bessere Organisation. Ich würde eine Datei im Initialisierungsverzeichnis namens "load_keys.rb" oder etwas ähnliches erstellen. In dieser Datei würden Sie den genauen Code eingeben, der sich in Ihrer Datei "environment.rb" befand, die Sie nicht in GitHub haben möchten.

    
Peter Brown 16.09.2010, 23:43
quelle
16

Sie können Umgebungsvariablen ( config vars auf Heroku) verwenden, um Ihre API-Schlüssel zu speichern und nicht in die Quelle zu checken.

Für ein Projekt , an dem ich gerade arbeite, verwende ich eine Verzweigung von twitter-auth , und änderte es, um das Client-Geheimnis und Schlüssel aus Env-Variablen zu lesen:

Ссылка

%Vor%

Ich habe dann die Schlüssel in meinem .rvmrc im Projektverzeichnis für den lokalen Gebrauch eingerichtet:

%Vor%

Und schließlich die Umgebungsvariablen auf heroku einrichten:

%Vor%

Dann stelle sicher, dass dein .rvmrc im .gitignore ist und du dann zu github wechseln kannst, ohne irgendwelche API-Schlüssel preiszugeben.

    
Dan McNevin 17.09.2010 00:16
quelle
1
  1. Legen Sie Ihre privaten Schlüssel wie gewohnt in ~ / .ssh.
  2. Verschlüsseln Sie Ihre privaten Schlüssel mit einer Passphrase.
  3. Installieren Sie den Schlüsselbund .
  4. Fügen Sie eval $(keychain private-key-file1 private-key-file2 private-key-file3; source ~/.keychain/${HOSTNAME}-sh) zu Ihrer ~ / .bashrc, ~ / .profile, ~ / .bash_profile oder was Sie haben. (Siehe die Schlüsselbund-Manpage für csh, tcsh, zsh oder was auch immer)
mkb 16.09.2010 23:43
quelle

Tags und Links