Rust製のコマンドラインで動作するワンタイムパスワードマネージャです.TOTP/HOTP に対応しています.
導入
Rust package managerのcargoを導入
$ sudo apt install cargo
cargoでcloakを導入
$ cargo install cloak
~/.cargo/
以下に導入される
試してみる
help
$ ~/.cargo/bin/cloak --help cloak 0.1.0 Evans Murithi <murithievans80@gmail.com> A Command Line OTP Authenticator application. USAGE: cloak [SUBCOMMAND] FLAGS: -h, --help Prints help information -V, --version Prints version information SUBCOMMANDS: add Add a new account delete Delete an account help Prints this message or the help of the given subcommand(s) list List OTP for all accounts recovery_codes View recovery codes for an account view View the OTP for an account
add
サブコマンドで登録する$ ~/.cargo/bin/cloak add --help cloak-add Add a new account USAGE: cloak add [FLAGS] [OPTIONS] <account> <key> FLAGS: -h, --help Prints help information --hotp Counter based account --totp Time based account (default) -V, --version Prints version information OPTIONS: -a, --algorithm <ALGORITHM> Algorithm to use to generate the OTP code [possible values: SHA1, SHA256, SHA384, SHA512, SHA512_256] ARGS: <account> Name of the account <key> Secret key of the OTP $ ~/.cargo/bin/cloak add matoken@home.nextcloud M0KMYFVOZY7AGX47 Account successfully created
登録情報確認
$ ~/.cargo/bin/cloak list Account: matoken@home.nextcloud TOTP: 538273
アカウントを指定してTOTPトークン表示
$ ~/.cargo/bin/cloak view matoken@home.nextcloud 370696
設定ファイルには生で情報が格納されるので取扱注意
$ cat ~/.cloak/accounts ["matoken@home.nextcloud"] key = "M0KMYFVOZY7AGX47" totp = true hash_function = "SHA1"
アクセス権もそのままでは危ないので注意
$ ls -l ~/.cloak/accounts -rw-r--r-- 1 matoken matoken 87 9月 22 06:19 /home/matoken/.cloak/accounts $ chmod -R go-rx ~/.cloak $ chattr +s ~/.cloak/accounts $ ls -la ~/.cloak 合計 12 drwx------ 2 matoken matoken 4096 9月 22 06:19 . drwxr-xr-x 62 matoken matoken 4096 9月 23 19:58 .. -rw------- 1 matoken matoken 87 9月 22 06:19 accounts
秘密鍵が平文でそのままファイルに格納されるので最低でもecryptfsは設定しておかないとかなな感じ?
私は現在はoathtoolを使ったscriptを使っています.秘密鍵はファイルに手で書いて暗号化しておきscript実行時に復号してoathtoolに渡してTOTP表示という感じ.若しくはKeePassCX.
環境
$ ~/.cargo/bin/cloak -V cloak 0.1.0 $ dpkg-query -W cargo cargo 0.29.0-1 $ lsb_release -d Description: Debian GNU/Linux unstable (sid) $ uname -m x86_64