OpenSSL コマンドラインを使用したパスワードリマインダ

題目通り。
誰でも思いつくようなことですが、環境失ったときのメモ & 誰かの役に立てば。


1. ~/remind/ とかいう適当なディレクトリを作成する。
2. ~/remind/data/ もついでに作成する。
3. ~/remind/ に秘密鍵と公開鍵を作る。秘密鍵は必ずパスフレーズを設定すること。
4. /usr/bin/ あたりに remind とかいう名前でシェルスクリプトを突っ込む。
(ここでは秘密鍵: private 公開鍵: public とかいう適当な名前で作った)

#!/bin/sh

if [ ! $1 ] ; then
    echo "Usage: remind filename"
    echo "Usage: remind make filename"
    echo
    echo "Recorded data:"
    ls ~/remind/data/
    exit;
elif [ "$1" = "make" ] ; then
    if [ ! $2 ] ; then
        echo "Usage: remind make filename"
        exit;
    fi
    echo "記録する内容を入力してください (終了は ^D) :"
    openssl rsautl -pubin -inkey ~/remind/public -encrypt -out ~/remind/data/$2
    echo "$2 として記録しました。"
    exit;
fi

openssl rsautl -inkey ~/remind/private -in ~/remind/data/$1 -decrypt


つかいかた。
remind とだけ叩くと、現在記録しているリマインダのリストが表示される。
remind make foo と叩くと、foo という名前でリマインダを作成する。
remind foo と叩くと、リマインダ「foo」を呼び出す。(秘密鍵にパスフレーズを設定しているので、パスワードの入力を求められる)