パスワード管理と言えばマスターパスワードがあり、それさえ覚えておけば他のパスワードは覚えておかなくて良いというものです。しかしマスターパスワードを簡単なものにしてしまったら意味がありません。 そこで使ってみたいのがcryptoriousです。パスワードを入力する代わりに公開鍵/秘密鍵を使うパスワード管理です。

cryptoriousの使い方

cryptoriousのヘルプです。

$ cryptorious 
WARN[0000] /Users/nakatsugawa/.cryptorious does not exist, creating... 
NAME:
   
 _________                            __                   .__                        
 \_   ___ \ _______  ___.__.______  _/  |_   ____  _______ |__|  ____   __ __   ______
 /    \  \/ \_  __ \< |  |\____ \ \   __\ /  _ \ \_  __ \|  | /  _ \ |  |  \ /  ___/
 \     \____ |  | \/ \___  ||  |_> > |  |  (  <_> ) |  | \/|  |(  </_><_> )|  |  / \___ \ 
  \______  / |__|    / ____||   __/  |__|   \____/  |__|   |__| \____/ |____/ /____  >
         \/          \/     |__|                                                   \/ 
 - CLI-based encryption for passwords and random data

USAGE:
   cryptorious [global options] command [command options] [arguments...]
   
VERSION:
   1.2.1
   
AUTHOR(S):
   Jeff Malnick <malnick @gmail.com> 
   
COMMANDS:
    rename	Rename an entry in the vault
    rotate	Rotate your cryptorious SSH keys and vault automatically
    delete	Remove an entry from the cryptorious vault
    decrypt	Decrypt a value in the vault `VALUE`
    encrypt	Encrypt a value for the vault `VALUE`
    generate	Generate a unique RSA public and private key pair for a user specified by user_name or with -user

GLOBAL OPTIONS:
   --vault-path, --vp "/Users/nakatsugawa/.cryptorious/vault.yaml"		Path to vault.yaml.
   --private-key, --priv "/Users/nakatsugawa/.ssh/cryptorious_privatekey"	Path to private key.
   --public-key, --pub "/Users/nakatsugawa/.ssh/cryptorious_publickey"		Path to public key.
   --debug									Debug/Verbose log output.
   --help, -h									show help
   --version, -v								print the version

最初はgenerateでキーを作るところからはじめます。

$ cryptorious generate keys
Generating new RSA public/private key pair for  
INFO[0000] Private Key: /Users/nakatsugawa/.ssh/cryptorious_privatekey 
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQDwHFCVHe8lRJhnqO7tfgRr0/WV9aTn/71aTH3BgjuL8t3QrvnL
  :
rHa4c87DRiLhb8GRUwIGke5+y3yl1X1A0bTGDn+URQ==
-----END RSA PRIVATE KEY-----

INFO[0000] Public Key: /Users/nakatsugawa/.ssh/cryptorious_publickey 
-----BEGIN RSA PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDwHFCVHe8lRJhnqO7tfgRr0/WV
  :
K+p8qo9BnuZdyp7DgwIDAQAB
-----END RSA PUBLIC KEY-----

後はencryptとキーを決めて設定します。

$ cryptorious encrypt moongift
WARN[0006] /Users/nakatsugawa/.cryptorious/vault.yaml not found, can not load vault 
INFO[0006] adding new vault entry for moongift          
WARN[0006] /Users/nakatsugawa/.cryptorious/vault.yaml does not exist, writing new vault file. 

cryptoriousの面白いところとしてはキーが分からないとパスワードが開放されないことでしょう。マスターパスワードは厳重に管理した方が良いですが、万一誰かの手に渡ったとしてもキーが分からなければ使えないようになっています。パスワードは10秒経つとセッションが切れて非表示になります。

cryptoriousはGo製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。

malnick/cryptorious: SSH Key-Based Password Management</_>