從 1Password 搬家到 pass
Why?
引用官網的說法,pass 是一套 「標準 unix 密碼管理工具」(the standard unix password manager),簡單好用。雖然 1Password 我已經設定用 Dropbox 同步,應該還算安全,不過多個開源選擇也好。
pass 也有社群版套件,在手機上也可以用,引用一下官網:
The community has even produced a cross-platform GUI client, an Android app, an iOS app, a Firefox plugin, a Windows client, a pretty Python QML app, a nice Go GUI app, an interactive console UI, Alfred integration (1) (2) (3), a dmenu script, OS X integration, git credential integration, and even an emacs package.
安裝 pass
在 macOS 上十分容易,先裝好 Homebrew,然後:
brew install pass
pass 也提供 shell completion 可以用,bash 預設就會裝好了,fish
需要在 ~/.config/fish/config.fish
裡加上:
source /usr/local/share/fish/vendor_completions.d/pass.fish
設定 pass
完成之後我們要看一下有沒有 gpg 金鑰,如果沒有的話要新增個
gpg --gen-key # 產生 gpg key
記住產生時輸入的 key phrase,每次解鎖密碼都會用到(就跟 1Password 一樣)。用 gpg --list-keys
查看剛剛產生的 key,輸出像這樣:
/Users/username/.gnupg/pubring.gpg
-------------------------------
pub 2048R/A534B400 2016-08-18
uid My Name <your_email@gmail.com>
sub 2048R/E1001945 2016-08-18
public id 就是 A534B400
,拿這組 id 來初始化 pass
pass init A534B400
完成!之後就可以用 pass 指令管理密碼了,可以下一些測試的指令試試,比如 insert 一組 foo 的密碼:
pass insert foo
然後顯示 foo 的密碼
pass show foo
由 1Password 匯入
官網上就寫上匯入 1password 的 ruby script 😍 ,直接使用就行了。在 1Password 匯出 txt 時,記得勾選 Include Column Labels
,如下圖:
把匯出的檔案和匯入腳本準備好,跑一下:
ruby 1password2pass.rb /path/to/1password_exported.txt
密碼就通通匯入至 ~/.password-store
底下囉~
基礎使用
pass 的管理可以說是相當自由,通通放在 ~/.password-store
目錄,底下可以建立任意的目錄分類,或是乾脆不分 XD
一些基本指令:
pass show PROFILE # 印出 PROFILE 的密碼
pass -c PROFILE # 複製 PROFILE 的密碼到剪貼簿,如果不想印到 terminal
pass edit PROFILE # 編輯密碼
pass ls # 列出所有密碼設定檔
我做了以下 alias,方便快速密碼搜尋:
alias passgrep="pass ls | grep -i"
就可以用 passgrep
來搜尋現有設定檔了。
Pass for iOS
pass 也有 iOS 的客端軟體可以用,還不用 jailbreak Q_Q 照著 wiki 設定就可以了,我自己在 GitHub 開一個 private repo,然後設定 ssh key,再由手機 pull 下來。下面秀一些截圖:
用起來就跟原本 1Password 有 87% 像啦 XD
(完)