Emacs'ta birden çok makine için Şifre / Anahtar Yönetimi


10

İşimin bir parçası olarak çok sayıda makineye giriş yapıyorum (günde + 20). Her makineyle sadece birkaç gün / hafta geçiriyorum. Birçoğu sadece ftp çalıştırır.

Kesintisiz erişim için Tramp şaşırtıcı, ama öyle yönetme sıkıcı hale gelmiştir elle bu sunucunun erişimin.

Herhangi bir tuşla birlikte .netrc ve .ssh / config dosyalarını elle yönetiyorum. Genellikle makine ile geçirdiğim süre boyunca bir şifre / anahtar değişecek ve dosyaları yeniden düzenlemem gerekecek.

Emacs içinden yönetim (makineler / şifreler / anahtarlar) için etkili bir çözüm var mı?

Yanıtlar:


7

Pass adı verilen basit bir şifre yöneticisi kullanıyorum . Emacs ile entegrasyon için ideal olan basit bir komut satırı arayüzü sunar. Destek deposu bir GPG şifreli GIT deposudur. Kullanmasam da aslında bir Emacs paketi ile geliyor. Arayüzüm gülünç derecede basit:

(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 tamamen aradığım şey değildi, ama cevabını seçtim çünkü kendimin bir son durum olduğunu hissediyorum. Ancak cevabınız topluluk için çok daha yararlı.
Gambo

@ Gambo iyi bir git repo olarak dağıtmak oldukça kolaydır. Ancak anahtarları dağıtmanız gerekir. Çok tuşlu desteği denemedim.
stsquad

3

Tramp, şifreleri yönetmek için kimlik doğrulama kaynaklarını kullanır. .Authinfo'da bazı özel girişlere ihtiyaç duyar,

 machine melancholia port scp login daniel password geheim

Ayrıntılar için "Trampa kullanımı" bölümünü okuyun.

yetkilendirme kaynakları aynı zamanda anında şifre girişleri oluşturmak için bazı işlevlere sahiptir. Tramp ile bu işlevselliği hiç denemedim, ama belki biraz araştırıyorsunuz.


Tramp 2.4.0 ile başlayarak, Tramp yeni parolaları da auth kaynakları aracılığıyla kaydeder.
Michael Albinus
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.