Ylva - Commandline Password Manager

はじめに

みなさんアカウントの管理ってどうやってるんでしょう.
テキストにIDとPWを平文で書いてデスクトップに置いておくような杜撰な管理している人結構いるように思う.

その道に明るい人なら KeePass や Bitwarden,1Password などの 名前くらいは聞いたことがあるかもしれない.

keepass.info

bitwarden.com

1password.com

私の要件としては以下の通り.

  1. ローカルで管理したい (クラウドでPW管理とか信用できるはずもなし)
  2. コマンドラインから操作したい

ということでたまたま見つけた Ylva というパスワードマネージャをお試しで使ってみた.

github.com

環境

ESXi 上に適当に立てた検証用CentOS上でお試しインストールしてみる.

$ cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core)
$ uname -orm
3.10.0-1062.9.1.el7.x86_64 x86_64 GNU/Linux

導入

関連パッケージインストール

$ sudo yum install git openssl-devel sqlite-devel gcc make

ビルドとインストール

$ git clone https://github.com/nrosvall/ylva.git
$ cd ylva/
$ make
$ sudo make install
$ ylva -V
Ylva version 1.5

使い方

ヘルプは以下の通り.

$ ylva -h
SYNOPSIS

    ylva [flags] [options]

OPTIONS

    -i --init                <path>   Initialize new database
    -e --encrypt                      Encrypt the current password database
    -d --decrypt             <path>   Decrypt password database
    -a --add                          Add new entry
    -D --duplicate           <id>     Duplicate an entry
    -s --show-db-path                 Show current database path
    -u --use-db              <path>   Switch using another database
    -r --remove              <id>     Remove entry pointed by id
    -f --find                <search> Search entries
    -F --regex               <search> Search entries with regular expressions
    -c --edit                <id>     Edit entry pointed by id
    -l --list-entry          <id>     List entry pointed by id
    -t --show-latest         <count>  Show latest <count> entries
    -A --list-all                     List all entries
    -h --help                         Show short help and exit. This page
    -g --gen-password        <length> Generate password
    -q --quick               <search> This is the same as running
                                      --show-passwords -f

    -V --version                      Show version number of program

FLAGS

    --auto-encrypt                    Automatically encrypt after exit
    --show-passwords                  Show passwords in listings
    --force                           Ignore everything and force operation
                                      --force only works with --init option

For more information and examples see man ylva(1).

AUTHORS
    Copyright (C) 2019 Niko Rosvall <niko@byteptr.com>

DBファイルを作る

オプションで指定した場所にDBファイルが作成される. この中でアカウント情報を管理していく.

$ ylva -i TestDB
$ ls
TestDB

エントリー追加

オプション -a でエントリーを追加することが出来る. パスワードを考えるのが面倒なら勝手に生成もしてくれる.

$ ylva -a
Title: test
Username: test
Url: test
Notes: test
Password (empty to generate new):

エントリー確認

エントリーはこんな形で確認が出来る.

$ ylva -A
=====================================================================
ID: 1
Title: test
User: test
Url: test
Password: **********
Notes: test
Modified: 2019-12-dd hh:mm:ss
=====================================================================

もちろんパスワードを表示することも出来る.

$ ylva --show-passwords -A
=====================================================================
ID: 1
Title: test
User: test
Url: test
Password: test
Notes: test
Modified: 2019-12-dd hh:mm:ss
=====================================================================

エントリー削除

例えばエントリーが2つある状態で,

$ ylva -A
=====================================================================
ID: 1
Title: test
User: test
Url: test
Password: **********
Notes: test
Modified: 2019-12-dd hh:mm:ss
=====================================================================
=====================================================================
ID: 2
Title: test2
User: test2
Url: test2
Password: **********
Notes: test2
Modified: 2019-12-dd hh:mm:ss
=====================================================================

ID=1 のエントリーを削除してみると

$ ylva -r 1
Entry was deleted from the database.

こんな感じ.

$ ylva -A
=====================================================================
ID: 2
Title: test2
User: test2
Url: test2
Password: **********
Notes: test2
Modified: 2019-12-dd hh:mm:ss
=====================================================================

その他

ylva が開いているDBファイルは以下ファイルで確認できる.
DBファイルを削除したときに ylva がDBファイルを開いていると認識している場合はこのファイルも削除すればいい.

$ cat ~/.ylva.open_db
testDB

所感

  • いいところ
  • わるいところ
    • オプションがいまいち直感的でない
      • -c --edit-e --edit こうしたい などなど
    • コマンド名が打ちにくい
      • 旧名 titan の方がよかった
    • できればパッケージとして提供してほしい

もう少しコミュニティが大きくなったら使おうかなと言う感じ.