Wie entferne ich Passwörter und Benutzernamen aus meiner emacs .init-Datei?

9

Beispiel :

  • Ich habe einen IRC-Benutzernamen und ein Passwort in meiner emacs .init-Datei
  • Ich teile meine .init-Datei geräteübergreifend mit einem öffentlichen Github-Repo
  • Ich verschlüssle diese Überschrift in meiner .init, um zu vermeiden, dass sie angezeigt wird
  • org-encrypt-entry verschlüsselt beim Speichern der Datei NICHT immer
  • daher muss ich immer vor git push nachsehen
  • Manchmal teile ich auch Ausschnitte meiner .init mit Leuten im IRC, um bei der Fehlerbehebung zu helfen. Heute habe ich meine IRC-Pw's gepostet und musste sofort zurücksetzen.

Kann ich ein elisp verwenden, um ein / gpg-Verzeichnis / eine .gpg-Datei an anderer Stelle zu referenzieren, anstatt un / pw in meiner .init-Datei fest zu codieren?

SeaDude
quelle
1
Haben Sie sich mit der Verwendung authinfo/netrcund Speicherung Ihrer Computereinstellungen an einem anderen Ort auf Ihrer Festplatte befasst? Wenn Ihr ircMaterial nicht dafür eingerichtet ist, schauen Sie sich an, get-auth-infowelche die integrierte auth-sourceBibliothek verwendet: emacs.stackexchange.com/a/5844/2287 Dieser Link ist für eine andere Verwendung vorgesehen, aber das Konzept ist dasselbe - dh wie man Autorisierungsanmeldeinformationen aus der authinfo/netrcDatei extrahiert .
Lawlist
1
Ich habe
neulich ein
Vielen Dank für die Eingabe. Dies brachte mich in die Richtung, in die ich gehen musste.
SeaDude

Antworten:

7

Hat einiges an Versuch und Irrtum gekostet, aber hier war die mögliche Lösung:

  • Erstellen Sie die Datei .authinfo.gpg in einem Verzeichnis Ihrer Wahl
  • Fügen Sie der Datei .authinfo.gpg Folgendes hinzu (für die IRC-Anmeldung)

machine irc.freenode.net login <your-irc-nick> port nickserv password <your-irc-pw>

  • Fügen Sie Ihrer emacs .init-Datei Folgendes hinzu

Legen Sie das Verzeichnis fest, in dem .authinfo.gpg vorhanden ist

(setq auth-sources 
      '((:source "~/.emacs.d/.authinfo.gpg"
       auth-source-debug t)))

Ich bin mir nicht sicher, was dies genau bewirkt, aber es war erforderlich, um die Dinge zum Laufen zu bringen: https://www.emacswiki.org/emacs/rcircAutoAuthentication

(defadvice rcirc (before rcirc-read-from-authinfo activate)
  (unless arg
  (dolist (p (auth-source-search :port '("nickserv")
                 :require '(:port :user :secret)))
(let ((secret (plist-get p :secret))
      (method (intern (plist-get p :port))))
  (add-to-list 'rcirc-authinfo
           (list (plist-get p :host)
             method
             (plist-get p :user)
             (if (functionp secret)
             (funcall secret)
               secret)))))))

Dies ist mehr oder weniger nur ein allgemeines rcirc-Setup, das Ihnen auch helfen kann :)

(setq rcirc-default-nick "<your-nick>"
  rcirc-default-user-name "<your-nick>"
  rcirc-auto-authenticate-flag t
  rcirc-log-flag t
  rcirc-log-directory "</path/to/irc-logs>"
  rcirc-track-minor-mode 1
  rcirc-server-alist
  '(("irc.freenode.net" :channels ("#your" "#favorite" "#irc-channels"))))
SeaDude
quelle