Come rimuovo password e nomi utente dal mio file .init di emacs?


9

Esempio :

  • Ho nome utente e password IRC nel mio file .init di emacs
  • Condivido il mio file .init su tutti i dispositivi utilizzando un repository github pubblico
  • Cripto questa voce nel mio .init per evitare di mostrare
  • org-encrypt-entry NON crittografa sempre al salvataggio del file
  • quindi devo sempre controllare prima di git push
  • inoltre a volte condivido frammenti del mio .init con persone in IRC per aiutare a risolvere i problemi. Oggi ho pubblicato i miei pw di IRC e ho dovuto resettarli immediatamente.

Invece di scrivere un / pw nel mio file .init, posso usare alcuni elisp per fare riferimento a un dir / file .gpg altrove?


1
Hai esaminato l'utilizzo authinfo/netrce la memorizzazione delle impostazioni della macchina in una posizione diversa sul disco rigido? Se le tue irccose non sono configurate per questo, dai un'occhiata a get-auth-infoquale utilizza la auth-sourcelibreria integrata : emacs.stackexchange.com/a/5844/2287 Quel link è per un uso diverso, ma il concetto è lo stesso - vale a dire, come estrarre le credenziali di autorizzazione dal authinfo/netrcfile.
elenco delle leggi

1
Ho visto un altro esempio pertinente l'altro giorno su github.com/jwiegley/dot-emacs/blob/… e github.com/jwiegley/dot-emacs/blob/…
phils,

Grazie per l'input. Questo mi ha portato nella direzione in cui dovevo andare.
SeaDude,

Risposte:


7

Ci sono voluti un po 'di tentativi ed errori, ma ecco la soluzione finale:

  • Crea il file .authinfo.gpg in una directory a tua scelta
  • Aggiungi quanto segue al file .authinfo.gpg (per l'accesso IRC)

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

  • Aggiungi quanto segue al tuo file .init di emacs

Imposta la directory dove esiste .authinfo.gpg

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

Non sono sicuro di cosa faccia esattamente, ma era necessario per far funzionare le cose: 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)))))))

Questo è, più o meno, solo una configurazione generale di rcirc che può aiutarti anche :)

(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"))))
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.