序章

セキュリティは、私たち全員がインターネット上で心配しなければならないことです。 オンラインアカウントに強力で一意のパスワードを設定することで、情報を安全に保ち、セキュリティ違反を防ぐことができます。

HeartBleed のような脆弱性が時折表面化し、信頼できる企業がセキュリティ侵害の犠牲になっているため、強力なパスワードを使用しているかどうかに関係なく、アカウント情報が危険にさらされる可能性があります。 異なるサービスに同じパスワードを使用している場合、その影響はさらに壊滅的なものになる可能性があります。

私たちのほとんどは、適切なパスワード管理の重要性について繰り返し言われてきました。 これは、パスワード管理ツールを使用して簡単に行うことができます。 KeePass は、ユーザーが制御するマシンにパスワードのデータベースを保存および管理するために使用できるパスワード管理ソリューションです。

通常、KeePass2ユーザーは、グラフィカルユーザーインターフェイスを介してローカルパスワードデータベースを操作しますが、このガイドでは、サーバー環境でこれらのファイルを作成および操作する方法について説明します。 kpcli ツールは、KeePassのエントリとデータベースを作成および編集するためのコマンドラインユーティリティです。

次のガイドでは、nginxを使用してキーデータベースファイルを安全に提供する方法を学習することで、私たちの作業を活用します。 次に、ローカルのKeePass2インストールからこのリモートデータベースに接続して、インターネットに接続された任意のデバイスでパスワード情報を取得できます。

これらの手順は、Ubuntu14.04サーバーで完了します。

必要なコンポーネントをダウンロードする

開始するには、デフォルトのUbuntuリポジトリからいくつかのソフトウェアを入手する必要があります。

kpcliユーティリティといくつかのヘルパーライブラリをダウンロードします。 このセッションでaptを使用するのはこれが初めてなので、インストール前にローカルパッケージインデックスを更新します。

sudo apt-get update
sudo apt-get install kpcli libterm-readline-gnu-perl libdata-password-perl

コンポーネントがインストールされたので、コマンドラインユーティリティを使用してパスワードを管理する方法を学び始めることができます。

セッションの開始とオリエンテーション

プロンプトで、次のように入力して、kpcliとの対話型セッションを開始します。

kpcli

クリーンなKeePass2データベースファイルを操作するためのプロンプトが表示されます。 次のように入力すると、使用可能なオプションの一部が表示されます。

help

      cd -- Change directory (path to a group)
      cl -- Change directory and list entries (cd+ls)
   close -- Close the currently opened database
     cls -- Clear screen ("clear" command also works)
    edit -- Edit an entry: edit <path to entry|entry number>
  export -- Export entries to a new KeePass DB (export <file.kdb> [<file.key>])
  . . .

すでにKeePass2データベースファイルがある場合は、 sftpを使用してサーバーに転送し、次のようにセッションで開くことができます。

 password_database.kdbxを開きます
マスターパスワードを入力してください:

データベースファイルのマスターパスワードの入力を求められます。 これにより、データベースファイルがkpcli環境で開きます。

データベースファイルがまだない場合は、次のように入力してデータベースファイルを作成します。

 saveas password_database .kdbx
 マスターパスワードを入力してください:再入力して確認します:

KeePassデータベースファイルのマスターパスワードを入力して確認するように求められます。 このパスワードは、他のすべてのパスワードを保護するために使用されるため、非常に優れたパスワードを選択し、それを覚えておくことが重要です。

KeePass2のデータベースファイルは、従来、.kdbxファイル拡張子で保存されているため、システム間の相互運用性を確保するために適しています。

これで、データベースファイルがkpcli環境にロードされました。 私たちは何をし、どのように始めるのですか?

まず、ヘルプメニューをチェックアウトすると、基本的な*nixコマンドをエミュレートするコマンドがいくつかあることに気付いたかもしれません。 ただし、ファイルシステムでは動作しません。 代わりに、ファイル内に作成されたデータベース構造で機能します。

次のように入力して方向付けを行います。

ls

=== Groups ===
eMail/
Internet/

ご覧のとおり、データベースは「電子メール」と「インターネット」という2つのグループで初期化されました。 KeePassは、パスワードと関連データを「エントリ」と呼ばれる構造に保存します。 また、パスワードエントリを整理するために使用される「グループ」と呼ばれる構造もあります。 現在、2つのグループがあり、エントリはありません。

mkdirコマンドを使用して、追加のグループを作成できます。

mkdir test

グループを削除するには、代わりにrmdirコマンドを使用できます。

rmdir test

パスワードエントリを作成する

最初のエントリを作成しましょう。

example.comのパスワードを保存します。 これはウェブサイトなので、「インターネット」グループに保存するのが賢明です。 次のように入力して、このグループに移動します。

cd Internet

これで、次のように入力してエントリを作成できます。

new

Adding new entry to "/Internet"
Title: example
Username: demo_user

データベース内のエントリを識別するために使用される名前を選択する必要があります。 次に、サイトへのログインに使用するユーザー名の入力を求められます。

Password:                ("g" to generate a password)

その後、パスワードの入力を求められます。 使用したいパスワードがすでにある場合は、ここに入力できます。 入力内容を確認するように求められます。 まだパスワードを持っていない場合は、「g」と入力するだけで、kpcliに強力なパスワードを生成するように指示できます。

URL: http://www.example.com
Notes/Comments (""):
(end multi-line input with a single "." on a line)

次に、サイトのURLを入力するように求められます。 その後、アカウントに関するコメントやメモを入力できます。

たとえば、サイトでパスワードを回復するためにセキュリティの質問を選択する必要がある場合、これは選択した回答を入力するのに適した場所です。 [ENTER]を押し、ドット「。」を入力してから、もう一度[ENTER]を押して、入力を終了します。

データベースが変更されたことが通知されます。 「y」と入力して変更を保存します。

ここでグループのコンテンツを一覧表示すると、新しいエントリがあることがわかります。

ls

=== Entries ===
0. example                                 www.example.com

このエントリは、先頭のインデックス番号または指定したタイトルで参照できます。

既存のエントリの操作

エントリができたので、既存のエントリを操作する方法について少し学ぶことができます。

既存のエントリを編集するには、editコマンドを使用して、インデックス番号またはタイトルで呼び出すことができます。

edit 0

エントリのフィールドが1つずつ表示され、以前の選択が事前に入力されます。 「ENTER」を押すだけで、保持したいフィールドの値を受け入れることができます。

エントリの内容を表示するには、showコマンドを使用できます。

show 0

 Path: /Internet
Title: example
Uname: demo_user
 Pass: 
  URL: http://www.example.com
Notes: 

出力が画面に表示されると、パスワードは赤(端末が色付きの出力をサポートしている場合)のブロックで隠されます。 基本的に、これは赤い背景に赤いテキストです。 これは、他の人にあなたのパスワードが表示されないようにするために使用されます。 テキストをコピーして貼り付けて、フィールドに入力することもできます。

画面にパスワードを表示したい場合は、-fフラグを追加できます。

show -f 0

 Path: /Internet
Title: example
Uname: demo_user
 Pass: _OZ1oMyZiC4ceydUDVvC
  URL: http://www.example.com
Notes: 

-aフラグを追加して、作成時刻や最終変更時刻などの追加情報を出力することもできます。

エントリを削除するには、rmコマンドを使用できます。

rm example

本当にエントリを削除するかどうかについてはではなくプロンプトが表示されるので、注意してください。 ただし、変更を保存するかどうかを確認するメッセージが表示されるので、誤ってエントリを削除した場合は、保存しないようにしてください。 その後、openコマンドを使用してファイルを再度開くことができます。

エントリを別のグループに移動するには、mvコマンドを使用できます。

mv 0 /eMail/

エントリを見つけるには、findコマンドを使用できます。

find example

Searching for "example" ...
 - 1 matches found and placed into /_found/
Would you like to show this entry? [y/N]

出力が示すように、結果は/_foundと呼ばれる新しいグループで利用可能になります。 このグループを保持したくない場合は、いつでも削除できます。 見つかったエントリは影響を受けません。

その他のkpcliコマンド

kpcliを使用する場合は、学習する必要のある追加のコマンドがいくつかあります。

グループの名前を変更するには、renameコマンドを使用できます。

rename Internet

Enter the groups new Title: internet

選択したパスワードの強度を確認したい場合は、pwckコマンドを使用できます。

pwck /

これにより、すべてのパスワードが再帰的にチェックされます。 ただし、1つのエントリに向けることもできます。

データベースファイルに関する統計を表示するには、statsコマンドを使用できます。

stats

KeePass file version: 2
Encryption type:      rijndael
Encryption rounds:    6000
Number of groups:     2
Number of entries:    1
Entries with passwords of length:
  - 20+: 1

最後に、セッションを終了するために、変更を明示的に保存できます。

save

次のように入力すると、現在作業中のデータベースファイルを閉じて、kpcliを引き続き使用できます。

close

または、次のように入力して、kpcliを完全に終了することもできます。

exit

結論

このガイドでは、kpcliツールを使用して、KeePass2パスワードデータベースファイルを操作および作成する方法を学習しました。 サーバー環境から比較的簡単にエントリとファイルを操作できるはずです。

次のガイドでは、ローカルのKeePass2インストールでリモートデータベースと対話できるように、nginxを使用してデータベースファイルを提供する方法を示します。

ジャスティン・エリングウッド