Làm cách nào để xóa mật khẩu và tên người dùng khỏi tệp .init của tôi?


9

Ví dụ :

  • Tôi có tên người dùng và mật khẩu IRC trong tệp .init của tôi
  • Tôi chia sẻ tệp .init của mình trên các thiết bị bằng cách sử dụng repo github công khai
  • Tôi mã hóa tiêu đề này trong .init để tránh hiển thị
  • org -rypt-entry KHÔNG luôn luôn mã hóa khi lưu tệp
  • do đó tôi luôn phải kiểm tra trước khi đẩy git
  • đôi khi tôi chia sẻ đoạn trích .init của mình với mọi người trong IRC để giúp khắc phục sự cố. Hôm nay tôi đã đăng IRC pw của tôi và phải thiết lập lại ngay lập tức.

Thay vì mã hóa un / pw trong tệp .init của tôi, tôi có thể sử dụng một số elisp để tham chiếu một tập tin / tệp .gpg ở nơi khác không?


1
Bạn đã xem xét việc sử dụng authinfo/netrcvà lưu trữ các cài đặt máy của bạn ở một vị trí khác trên ổ cứng của bạn chưa? Nếu ircnội dung của bạn không được thiết lập cho điều đó, hãy xem get-auth-infosử dụng auth-sourcethư viện tích hợp: emacs.stackexchange.com/a/5844/2287 Liên kết đó dành cho một cách sử dụng khác, nhưng khái niệm này giống nhau - tức là làm thế nào để trích xuất thông tin ủy quyền từ authinfo/netrctệp.
luật

1
Tôi đã thấy một ví dụ khác có liên quan vào một ngày khác tại github.com/jwiegley/dot-emacs/blob/ và và github.com/jwiegley/dot-emacs/blob/ của
phils

Cảm ơn bạn đã nhập. Điều này đã đưa tôi đi theo hướng tôi cần phải đi.
SeaDude

Câu trả lời:


7

Đã thử khá nhiều thử nghiệm và lỗi, nhưng đây là giải pháp cuối cùng:

  • Tạo tệp .authinfo.gpg trong thư mục bạn chọn
  • Thêm phần sau vào tệp .authinfo.gpg (để đăng nhập IRC)

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

  • Thêm phần sau vào tệp .init của bạn

Đặt thư mục tồn tại .authinfo.gpg

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

Không chắc chắn chính xác những gì nó làm, nhưng nó được yêu cầu để mọi thứ hoạt động: 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)))))))

Đây là, ít nhiều, chỉ là thiết lập RCirc nói chung cũng có thể giúp bạn :)

(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"))))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.