はじめに
1PasswordというMacのアプリがあります。
このアプリは、保存されたパスワードの強度な暗号化と自動ログインを補助するものです。
ここで、CLIユーザーの方は、KeepassというOSSのツールを使っている人が多いと思います。
私も、Keepassの方を使っています。
よって、Keepassで作られたデータベースファイルを使って、自動ログインを補助するツールを作ってみました。
airkeepass
インストールと実行
git clone https://github.com/syui/airkeepass
cd !$:t
./airkeepass
必要なツールはいくつかありますが、自動ダウンロードされるようにしておきました。
自動ダウンロードされるのは、以下のツールです。ダウンロードされる場所は、airkeepass/tool/です。
コマンドからの実行
選択メニューを使わない場合は、airkeepass/text/theme.txtを確認して下さい。
| コマンド | 内容 |
|---|---|
| ./airkeepass login-a | オートログインの実行 |
| ./airkeepass login-k | データベースファイルの追加 |
| ./airkeepass login-l | リストの表示 |
| ./airkeepass login-t | テストログイン |
| ./airkeepass login-b | ブラウザの指定 |
| ./airkeepass login-d | 個人ファイルの削除 |
| ./airkeepass login-e | 終了 |
自動ログイン
試しに自動ログインしてみましょう。
テストのデータベースファイルが用意されていますので、それを選択します。text/keepass-test.kdb
指定したブラウザが開き、無事、IDとパスワードが入力され、Enterが押されました。
データベースファイルの場所は、text/keepass.txtに保存されますので、airkeepassは、一度実行すれば、次も同じファイルを選択します。
変更するには、login-kを選択または引数に指定します。
もし候補に上がってこない場所にある場合は、パスを手動で入力してください。
注意点
Google Chromeを使ってなら確実にログインできます。
しかし、SafariとFirefoxを選択した場合は、ブラウザのリロードによっては失敗することがあります。
原因は以下のコードになります。
Safari|Firefox)
echo "
tell application \"$brows\"
--キー操作(C-v,Tab,入力,Enter)
--省略
"|osascript -
;;
Google Chrome|*)
echo "
tell application \"$brows\"
--リロード完了を待つ処理
repeat while loading of active tab of window 1
delay 0.1
end repeat
--ペーストを実行
paste selection active tab of window 1
--キー操作(Tab,入力,Enter)
--省略
"|osascript -
;;
Chromeは、リロード完了、ペーストの処理を書いていますが、SafariとFirefoxは書いていません。