Linux用のコマンドラインパスワードマネージャー

パスワード管理は単純でなければなりません。 これらのコマンドラインパスワードマネージャーは、クレデンシャル、タイトル、Web URL、メモ、およびその他の詳細を暗号化されたファイルに保存します。 これらのツールを使用して、資格情報を簡単に管理できます。 識別と並べ替えが非常に簡単な個々のパスワードファイルを管理することもできます。

これらのツールは、パスワードを編集、追加、生成、および取得するためのオプションを提供します。 これには、クリップボードにパスワードを一時的に配置し、パスワードの変更を追跡できる非常に短く単純なシェルスクリプトが含まれています。

この記事では、2つのコマンドラインパスワードマネージャーツールについて説明します。

1. Passmgr

シンプルでポータブルなパスワードマネージャーツールです。 パスフレーズを安全に保存し、コマンドラインから取得します。 デフォルトモードでは、passmgrを使用すると、保存されているパスフレーズを選択できます。このパスフレーズは、パスフレーズフィールドに貼り付けるために、限られた時間だけクリップボードにコピーされます。 この後、クリップボードは消去されます。

すべてのクレデンシャルは、AES256-GCM暗号化された単一のファイルに保存されます。このファイルは、デフォルトでユーザーのホームディレクトリにあります。 このファイルの暗号化キーは、scryptを使用してマスターパスフレーズから取得されます。

前提条件

  • Goのインストール
  • インストールするXclipまたはXselコマンド

Passmgrをインストールする前に、これらの前提条件を満たしている必要があります。

Goのインストール

サーバーアーキテクチャに応じて、必要なパッケージをダウンロードし、抽出してインストールできます。

#yum update
# wget https://storage.googleapis.com/golang/go1.6.2.linux-amd64.tar.gz
# tar -xzvf go1.6.2.linux-amd64.tar.gz -C /usr/local/

64ビットアーキテクチャ用のパッケージをダウンロードしました。 以前と同様に、サーバー全体で作業フォルダーセット環境変数を作成できます。

# cd /root
# mkdir go
# cat /etc/profile.d/goenv.sh
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# source /etc/profile.d/goenv.sh
# go version
go version go1.6.2 linux/amd64

XclipまたはXselのインストール

CentOS 7サーバーでこれらのコマンドを有効にするには、これらの依存関係パッケージをインストールしてから、パッケージをインストールする必要があります。 このコマンドを有効にするには、次の手順に従ってください。

# yum install libX11.x86_64
# yum install libX11-devel.x86_64
# yum install libXmu.x86_64
# yum install libXmu-devel.x86_64
# wget ftp://mirror.switch.ch/pool/4/mirror/epel/7/x86_64/x/xclip-0.12-5.el7.x86_64.rpm
# wget https://dl.fedoraproject.org/pub/epel/7/x86_64/x/xsel-1.2.0-15.el7.x86_64.rpm
# rpm -Uvh xsel-1.2.0-15.el7.x86_64.rpm
warning: xsel-1.2.0-15.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:xsel-1.2.0-15.el7 ################################# [100%]
# rpm -Uvh xclip-0.12-5.el7.x86_64.rpm
warning: xclip-0.12-5.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:xclip-0.12-5.el7 ################################# [100%]

Passmgrのインストール

上記のインストールが完了したら、次のように1つのステップでこのPassmgrツールを有効にできます。

# go get github.com/urld/passmgr/cmd/passmgr

これで実行できます "passmgr" パスワードマネージャーツールのマスターパスワードを設定し、ツールへのプライマリエントリを作成します。

# passmgr
 [passmgr] new master passphrase for /root/.passmgr_store:
 [passmgr] retype master passphrase for /root/.passmgr_store:

-- store is empty --

Choose a command [(S)elect/(f)ilter/(a)dd/(d)elete/(q)uit] a
 Enter the values for the new entry
 User: Saheetha
 URL: linoxide.com
 Passphrase:

n) User URL
 1) Saheetha linoxide.com

Passmgrは使用します

このツールは、パスワードを管理するためのさまざまなオプションを提供します。 これらのオプションを使用して、特定の文字列を使用して追加、削除、検索を行うことができます。 このツールを使用して、helpコマンドを実行し、可能なすべてのオプションを一覧表示できます。

# passmgr --help
 Usage of passmgr:
 -add
 store new credentials
 -appTTL int
 time in seconds after which the application quits if there is no user interaction (default 120)
 -clipboardTTL int
 time in seconds after which the clipboard is reset (default 15)
 -del
 delete stored credentials
 -file string
 specify the passmgr store (default "/root/.passmgr_store")

例:

以下のようにオプション–addを使用して、パスワードマネージャーツールに新しいエントリを追加できます。

# passmgr -add
[passmgr] master passphrase for /root/.passmgr_store: docker

n) User URL
1) Saheetha linoxide.com

Enter the values for the new entry
User: [email protected]
URL: work.example.com
Passphrase:

n) User URL
1) Saheetha linoxide.com
2) [email protected] work.example.com

オプション–fileを使用して、クレデンシャルをファイルに保存/読み取ることができます。 デフォルトでは、すべてのパスワードは「/root/.passmgr_store」ファイル内に保存されます。 次のように、このコマンドを使用して特定のエントリのパスワードファイルを読み取ることができます。

# passmgr -file /root/.passmgr_store
[passmgr] master passphrase for /root/.passmgr_store:

n) User URL
1) Saheetha linoxide.com
2) [email protected] work.example.com
3) testuser website.com

Choose a command [(S)elect/(f)ilter/(a)dd/(d)elete/(q)uit] 1
Choose a command [(S)elect/(f)ilter/(a)dd/(d)elete/(q)uit] S
Select: 1

Passphrase copied to clipboard!
Clipboard will be erased in 15 seconds.

以下のように、フィルターオプションを使用して、検索を特定の文字列に制限できます。

# passmgr
 [passmgr] master passphrase for /root/.passmgr_store:

n) User URL
 1) Saheetha linoxide.com
 2) [email protected] work.example.com
 3) testuser website.com
 4) test test.com

Choose a command [(S)elect/(f)ilter/(a)dd/(d)elete/(q)uit] f
 Filter: test

n) User URL
 3) testuser website.com
 4) test test.com

フィルタは、空のままにしておくことでリセットできます。

パスワードマネージャーツールからエントリを削除するには、オプションdまたは削除を使用できます。 をご覧ください example 下:

# passmgr
 [passmgr] master passphrase for /root/.passmgr_store:

n) User URL
 1) Saheetha linoxide.com
 2) [email protected] work.example.com
 3) testuser website.com
 4) test test.com

Choose a command [(S)elect/(f)ilter/(a)dd/(d)elete/(q)uit] d
 Delete: 3
 Delete all secrets for 'testuser | website.com? [Y/n] y

n) User URL
 1) Saheetha linoxide.com
 2) [email protected] work.example.com
 3) test test.com

Choose a command [(S)elect/(f)ilter/(a)dd/(d)elete/(q)uit] q

これで example、削除しました "testuser" パスワードマネージャーからのエントリ。

2.タイタン

Titanは、Unixタイプのオペレーティングシステムのいずれかで使用できるもう1つのコマンドラインパスワードマネージャーツールです。 OpenSSLライブラリを使用して暗号化を実行します。 AES暗号化は256ビットキーで使用されます。 タイタンでは、パスワードデータベースもキー付きハッシュメッセージ認証コード(HMAC)を使用して改ざんから保護されています。 暗号化中に、一意の暗号的にランダムな初期化ベクトルが使用されます。 パスワードデータベースが暗号化されるたびに、新しい初期化ベクトルが生成されます。

Titanはパスワードの保存にSQliteを使用しています。 データベーススキーマはシンプルで簡単です。

これらの手順に従って、CentOS7サーバーにTitanをインストールしました。

# yum install sqlite-devel.x86_64 sqlite-tcl.x86_64
# yum install openssl-devel
# git clone https://github.com/nrosvall/titan.git
# cd titan/
# make
# make install

Titanの使用法

Titanには、コマンドラインからパスワードを管理するためのオプションもいくつか用意されています。 以下でそれらのいくつかを見てみましょう:

まず、パスワードを保存するためのデータベースを作成する必要があります。 このコマンドを実行するだけで、新しいデータベースを作成できます。

# titan --init /home/passwords/passwd.db

作成中にこのデータベースを保護するためのパスワードを指定できます。 これで、を使用してこのデータベースに必要なすべてのエントリを追加できます。 --add or just -a 以下のオプション:

# titan --add
Title: Work
Username: sshameer
Url: linoxide.com
Notes: Admin notes
Password (empty to generate new):

エントリを追加するには、データベースを復号化する必要があります。 それを復号化するには、オプションtitan–decryptを使用できます [database path]。 ここで使用できます:

# titan --decrypt /home/passwords/passwd.db

追加されたエントリを表示するには、オプションを使用できます "--list-all".

# titan --list-all
 =====================================================================
 ID: 1
 Title: Work
 User: sshameer
 Url: linoxide.com
 Password: **********
 Notes: Admin notes
 Modified: 2017-07-08 15:11:56
 =====================================================================

可能なすべてのエントリを追加した後、セキュリティのためにパスワードデータベースを暗号化する必要があります。 このコマンドを実行するだけで暗号化できます。

#titan --encrypt /home/passwords/passwd.db

見てください man titan また titan --help 詳細については。

最近、別のコマンドラインパスワードマネージャーを見つけました」Passhole“それはKeePassデータベースを使用しています。

まとめ

SSH経由でリモートログインする場合、コマンドラインパスワードマネージャーはシンプルで優れています。 既存のすべてのパスワードをパスワードマネージャーに取り込むことは、良い最初のステップです。 パスワードマネージャーは、優れたセキュリティを可能な限り簡単にします。 あなたがする必要があるのは1つのマスターパスワードを覚えていることです(それを良いものにしてください!)、そしてパスワードマネージャーが残りを処理し、必要に応じてすべてのアカウントに固有のパスワードを生成して保存します。 これらのログイン資格情報を暗号化することに加えて、それらを安全に保存します。 この記事を読んでいただきありがとうございます。他のツールを見つけた場合は、ここでお気軽に共有してください。