
Linuxサーバー(GUIなし)で作業していて、パスワードを安全に保存できる手段があればいいのにと思ったことは何回ありますか?ヘッドレスサーバーでそのような機能が利用できれば、時間を大幅に節約できます。
参照:パスワード侵害:ポップカルチャーとパスワードが混ざらない理由(無料PDF)(TechRepublic)
Linuxを長く使っている方なら、これが実は非常に簡単であることは既にご存知でしょう。GnuPGアプリケーションを使えば、セキュリティのためにGPGキーで保護されたパスワードストアを作成できます(つまり、キーを持つ人だけがアクセスできるようになります)。
GnuPG と、この目的に特化したコマンドの使い方を説明しますpass
。
必要なもの
GnuPG を使ってこれを行うには、Linux インスタンスと sudo 権限を持つユーザーが必要です。これらが準備できたら、早速作業を進めていきましょう。
GnuPGをインストールして合格する方法
まず最初に、GnuPGアプリケーションをインストールします。Ubuntuサーバーを使用している場合、インストールコマンドは以下のようになります。
sudo apt-get install gnupg2 pass -y
RHEL ベースのマシンでは次のようになります。
sudo dnf install gnupg2 pass -y
SUSE がディストリビューションとして選択された場合:
sudo zypper install gpg2 pass -y
Arch Linux がお好きですか? それなら:
sudo pacman -S pass gnupg pass
ストア用のGPGキーを作成する方法
ストアで使用するためのGPGキーを作成します。GPGキーを作成するには、次のコマンドを実行します。
gpg2 --full-generate-key
デフォルトの鍵タイプ(RSA)、デフォルトの鍵サイズ(3072)、有効期限0(無期限)を選択し、すべて正しい場合は「Y」と答えます。次に、鍵に名前、メールアドレス、コメント(お好きなもの)を追加し、最後に鍵にパスフレーズを設定します(図A)。
図A

さあ、新しいGPGストアを起動しましょう。以下のコマンドでホームディレクトリに移動します。
cd ~/
ストアを始めましょう:
pass init EMAIL
EMAILは、生成したGPGに関連付けられたメールアドレスです。出力には次の2行が表示されます。
mkdir: created directory '/home/USER/.password-store/'
Password store initialized for EMAIL
ここで、USER はユーザー名、EMAIL は GPG キーに関連付けられた電子メール アドレスです。
ストアにパスワードを追加する方法
ストアの準備ができたら、パスワードを追加できます。pass
コマンドを使って、関連するパスワードを保存するディレクトリを作成できます。例えば、ウェブサイトのパスワードを保存するディレクトリを作成し、最初のエントリをTechRepublicにするとします。そのコマンドは次のようになります。
pass generate websites/techrepublic.com 12
上記のコマンドは、ランダムなパスワード(12文字)を生成し、ディレクトリWebサイトのTechRepublicエントリに関連付けます。次のような出力が表示されます。
mkdir: created directory '/home/jack/.password-store/websites'
websites/techrepublic.com に生成されたパスワードは次のとおりです。
@Kh^B##<sP/R
保存したいパスワードが既にわかっている場合、コマンドは次のようになります。
pass insert websites/techrepublic.com
次のコマンドでパスワードを編集できます。
pass edit websites/techrepublic.com
保存したら、次のコマンドを入力してパスワードを表示できます。
pass websites/techrepublic.com
パスワードを保存するためにpassを使用する際の注意点
パスワード保存場所としてを使用する際の最大の問題点の一つはここにありますpass
。GUI付きのディストリビューションを使用している場合は問題ありません。 を実行するとpass websites/techrepublic.com
、鍵用に作成したパスワードの入力を求められます。しかし、GUIのないサーバーでは、SSHセッションではGTKのpinentryダイアログを表示できないため、パスワードがそのまま表示されます。
これを回避するには、次のコマンドを使用して別のアプリケーションをインストールする必要があります。
sudo apt install pinentry-tty -y
インストールしたら、次のように設定します。
sudo update-alternatives --config pinentry
必ずpinentry-ttyを選択してください。
設定後、pass
コマンドを実行すると、GPGキーに関連付けられたパスワードの入力を求められます。認証に成功すると、パスワードが表示されます。
覚えておくべき点として、pass
GPGキーのパスワードは一定期間キャッシュされます。そのため、次回pass
コマンドを実行する際にはパスワードの入力を求められません。これを回避するには、次のコマンドで保存されたパスワードをすぐに消去できます。
gpg-connect-agent reloadagent /bye
注意すべき点は、SSHセッションからログアウトする前に必ずこのコマンドを実行することですgpg-connect-agent
。そうしないと、パスワードがしばらくキャッシュされたままになり、誰かがあなたの認証情報を使ってサーバーにログインし、パスワードを盗む可能性があります。安全第一に行動しましょう。
GnuPG とコマンドを使用して、ヘッドレス Linux サーバーにパスワードを安全に保存する方法はこれだけですpass
。
Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube でTechRepublic の How To Make Tech Work を購読してください。