Quản lý mật khẩu / khóa cho nhiều máy trong emacs


10

Tôi đăng nhập vào nhiều máy như một phần công việc của mình (+ - 20 mỗi ngày). Tôi chỉ dành một vài ngày / tuần với mỗi máy. Nhiều người chỉ chạy ftp.

Để truy cập liền mạch, Tramp rất tuyệt vời, nhưng việc quản lý các truy cập của máy chủ này bằng tay đã trở nên tẻ nhạt.

Tôi quản lý .netrc và .ssh / config bằng tay, cùng với bất kỳ phím nào. Thường thì mật khẩu / khóa sẽ thay đổi trong thời gian sử dụng máy và tôi sẽ phải chỉnh sửa lại các tập tin.

Có một giải pháp hiệu quả để quản lý (máy / mật khẩu / khóa) từ bên trong emacs không?

Câu trả lời:


7

Tôi sử dụng một trình quản lý mật khẩu đơn giản gọi là pass . Nó cung cấp một giao diện dòng lệnh đơn giản với lý tưởng để tích hợp với Emacs. Cửa hàng sao lưu là một repo GIT được mã hóa GPG. Nó thực sự xuất xưởng với gói Emacs mặc dù tôi không sử dụng. Giao diện của tôi rất đơn giản:

(defun my-fixup-gpg-agent (frame)
  "Tweak DISPLAY and GPG_TTY environment variables as appropriate to `FRAME'."
  (when (fboundp 'keychain-refresh-environment)
    (keychain-refresh-environment))
  (if (display-graphic-p frame)
      (setenv "DISPLAY" (terminal-name frame))
    (setenv "GPG_TTY" (terminal-name frame))
    (setenv "DISPLAY" nil)))

(add-hook 'after-make-frame-functions 'my-fixup-gpg-agent)

;; Simple caching
(defvar my-cached-passwords
  nil
  "Cache of passwords. Stored in plain text so you only want to cache
  them if of low value.")

(defun my-pass-password (pass-name &optional cache)
  "Return the password for the `PASS-NAME'."
  (let ((cached-pass (assoc-default pass-name my-cached-passwords)))
    (if cached-pass
        cached-pass
      (when (selected-frame)
        (my-fixup-gpg-agent (selected-frame))
        (let ((new-pass (chomp
                         (shell-command-to-string
                          (format "pass %s" pass-name)))))
          (when (and new-pass cache)
            (add-to-list 'my-cached-passwords (cons pass-name new-pass)))
          new-pass)))))

Pass không hoàn toàn là những gì tôi đang tìm kiếm, nhưng tôi đã chọn câu trả lời của bạn bởi vì tôi cảm thấy của tôi là một trường hợp cạnh. Nhưng câu trả lời của bạn hữu ích hơn nhiều cho cộng đồng.
Gambo

@Gambo cũng như một repo git nó khá dễ phân phối. Bạn cần phải phân phối khóa mặc dù. Tôi chưa thử nghiệm với hỗ trợ đa khóa.
stsquad

3

Tramp sử dụng phụ trợ nguồn auth để quản lý mật khẩu. Nó cần một số mục chuyên biệt trong .authinfo, như

 machine melancholia port scp login daniel password geheim

Đọc hướng dẫn sử dụng Tramp, chương "Xử lý mật khẩu", để biết chi tiết.

auth-nguồn cũng có một số chức năng để tạo các mục nhập mật khẩu nhanh chóng. Tôi chưa bao giờ thử chức năng này với Tramp, nhưng có lẽ bạn điều tra một chút.


Bắt đầu với Tramp 2.4.0, Tramp cũng lưu mật khẩu mới thông qua các nguồn xác thực.
Michael Albinus
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.