GNU/Linux >> Linux の 問題 >  >> Linux

passコマンドでLinuxパスワードを管理する方法

パスワード管理は、過去10年以内にホットな話題になりました。 Googleですばやく検索すると、個人情報のロックを解除する文字列を保護するツールを選択するためのさまざまなオプションが見つかります。これらのアプリケーションの中には、単にコンピューター上で実行され、暗号化された形式でパスワードをオフラインで保存するものもあります。
その他のアプリケーションは、複数のデバイスとのオンライン同期、パスワード共有、2要素認証(2FA)などを提供する、より機能が豊富です。 。これらのサービスのいくつかでは、提供されている機能の海の中でパスワード管理の単純さが失われています。それだけでなく、これらのサービスの多くが提供するオンラインボールトの利便性により、資格情報が管理外のサーバーと同期されるため、データをある程度管理できなくなります。

シンプルさを提供し、資格情報を完全に制御できる代替手段があります。シンプルさを保ちながら、有料サービスと同じ機能の多くを提供できます。これはオープンソースであり、Wireguardを作成したのと同じ作者によって書かれています。Wireguardは、Linuxカーネルに急速に導入される前にLinusTorvaldsから高い評価を受けました。この代替手段はpassと呼ばれます これはパスワードストアとも呼ばれます。

[お楽しみいただけるかもしれません:passwdコマンドを使用したLinuxユーザーの管理]

パスワード管理はシンプルで、Unix哲学に従う必要があります。 passを使用 、各パスワードは、パスワードを必要とするWebサイトまたはリソースのタイトルをファイル名とするgpg暗号化ファイル内にあります。これらの暗号化されたファイルは、意味のあるフォルダ階層に編成され、コンピュータからコンピュータにコピーされ、通常、標準のコマンドラインファイル管理ユーティリティを使用して操作されます。 --合格:標準のUnixパスワードマネージャー

パスワードストアを使用する理由

  • オープンソースです
  • 使い方は簡単です
  • 十分に文書化されています
  • CLIベースですが、利用可能なGUI拡張機能があります
  • 選択したレベルまでGnuPGで暗号化されます
  • それは完全にあなたの管理下にあります。パスワードはサードパーティのサーバーと同期されません
  • パスワードストアはシステムにのみ残すことができます。または、選択したプライベートGitリポジトリと同期することもできます(強くお勧めします)

インストール

1. passをインストールします :

$ sudo dnf install pass 

2. GPGキーペアをまだお持ちでない場合は、作成する必要があります:

$ gpg2 --full-generate-key

キータイプとしてオプション1(RSAおよびRSA)を選択します。

Please select what kind of key you want:

   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)

Your selection? 1

希望のキーサイズを選択します。この例では、4096を選択します:

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits

Please specify how long the key should be valid.

        0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years

次に、キーを有効にする期間を選択します。この例では、2年間を選択します。

Key is valid for? (0) 2y
Key expires at Sat 18 Mar 2023 15:03:38 CET
Is this correct? (y/N) y

フルネームとメールアドレスを入力し、「 O」で確認します 'プロンプトが表示されたら。

GnuPG needs to construct a user ID to identify your key.

Real name: John Doe
Email address: [email protected]
Comment: 
You selected this USER-ID:
    "John Doe <[email protected]>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

GPG作成プロセスの最後のステップの1つは、パスワードを設定することです。大文字、小文字、記号を含む強力なパスワードを使用してください。これは、passのロックを解除するためのマスターパスワードになります データストア。

3. GPGキーが作成されたので、キーを一覧表示し、秘密(秒)キーIDをメモする必要があります:

$ gpg2 --list-secret-keys --keyid-format LONG

sec   4096R/AAAA2222CCCC4444 2021-03-18 [expires: 2023-03-18] uid         John Doe <[email protected]>

4. GPGキーIDを使用して、passを開始できます。 データストア:

$ pass init 'AAAA2222CCCC4444'

mkdir: created directory ‘/home/myhome/.password-store’ Password store initialized for AAAA2222CCCC4444.

5.これで、RSA4096で暗号化されたパスワードストアからパスワードを生成およびフェッチできます。新しいパスワードを生成するには(-c 作成後にクリップボードにコピーし、21は21文字の長さのパスワードを指定します):

$ pass generate -c Internet/github.com 21

ストアからパスワードを取得します:

$ pass show Internet/github.com
<enter GPG password at prompt>

追加の手順

passのストックインストール クレデンシャル用の安全なローカルデータストアを提供します。ただし、使いやすさを向上させるために重要だと思う機能は他にもいくつかあります。

Gitリポジトリと同期する

冗長性を確保し、複数のデバイス間でクレデンシャルを共有するために、passを同期することを強くお勧めします Gitリポジトリで保存します。良いニュースは、pass すでにGit機能が組み込まれています。リモートリポジトリを作成し、パスストアで初期化するだけです。リモートのGitリポジトリを使用して、pass用に初期化できます。 。以下の例では、Githubを使用していますが、任意のバージョン管理ホスティングプロバイダーを使用することも、独自にセットアップすることもできます。

1.リモートGitサーバーにプライベートリポジトリを設定したら、 passを使用してローカルで初期化する必要があります gitリポジトリ リモートオリジンを追加します:

$ pass git init

Initialized empty Git repository in /home/myhome/.password-store/.git/ [master (root-commit) 998c8fd] Added current contents of password store. 1 file changed, 1 insertion(+)

create mode 100644 .gpg-id

$ pass git remote add origin [email protected]:johndoe/pass-store.git

2.リポジトリへの認証が適切に構成されている限り、組み込みのpass git pushを使用してパスストアをリモートリポジトリにプッシュできます。 コマンド:

$ pass git push -u --all
                                                                            
Enumerating objects: 14, done.
Counting objects: 100% (14/14), done.
Delta compression using up to 12 threads
Compressing objects: 100% (12/12), done.
Writing objects: 100% (12/12), 2.68 KiB | 913.00 KiB/s, done.
Total 12 (delta 6), reused 0 (delta 0), pack-reused 0
To [email protected]:johndoe/pass-store.git
  212af8c..d1c11c5  master -> master

Webログインフォームに自動的に入力する

ログインフォームに保存されたクレデンシャルを自動的に入力できるようにする、すべての主要なブラウザで利用可能な拡張機能があります。 browserpassネイティブクライアントとブラウザ拡張機能をインストールする必要があります。ネイティブクライアントをインストールするための手順を確認してください。ネイティブクライアントとbrowserpassの両方が 拡張機能がインストールされている場合は、ショートカット Ctrl-Shift-L を使用できます ログインフォームにパスストアのクレデンシャルを自動的に入力します。

Chromeの設定

1. Chrome/Chromium用のbrowserpass拡張機能をインストールします。

2.次に、browser-passネイティブクライアントをコンパイルしてインストールします。これは手動で行う必要があります。

3. browserpass-nativeのクローンを作成します システムへのリポジトリ。

4. Golangがすでにインストールされている場合は、この手順をスキップします。それ以外の場合は、Golangをインストールします:

$ sudo dnf install golang

5. cd リポジトリのクローンを作成した場所に移動し、次のmakeを実行します コマンド:

$ make

$ make configure

$ sudo make install 

6. browserpassに移動します プログラムディレクトリを作成し、特定のブラウザの拡張機能をコンパイルします。 Chromiumの場合は、次を実行します:

$ cd /usr/lib/browserpass/

$ make hosts-chromium-user 

特定のブラウザ用にコンパイルする方法の例があります。

7.これで、ブラウザパスを使用できます パスワードストアからフォームに入力するための拡張機能。

モバイルアプリ

Android-Password-Storeと呼ばれるAndroidアプリとpassforiosと呼ばれるiOS用のアプリがあります。どちらもオープンソースであり、それぞれのアプリストアで入手できます。どちらのアプリもフォームの自動入力をサポートしており、どちらにもGit機能が組み込まれているため、リモートパスリポジトリから簡単にプッシュおよびプルできます。

[この無料の電子書籍を入手する:ダミーのKubernetesクラスターを管理する。 ]

まとめ

この記事では、passを紹介しました 、実績のあるGNU Privacy Guard(GPG)暗号化ソフトウェアを使用して資格情報を安全に保つオープンソースのパスワード管理ツール。コアのpass ソフトウェアは、他のオープンソース拡張機能を介して機能を拡張する機能を備えた、シンプルなパスワード管理を可能にします。 pass データストアは単にGPG暗号化ファイルのコレクションであるため、システム管理者の間ですでに一般的なツールを使用して、デバイス間で資格情報を簡単に同期できます。ギット。これにより、バージョン管理ホスティングプロバイダーのプライベートGitリポジトリであるか、独自の仮想プライベートサーバーであるかを問わず、資格情報を保存する場所を決定できます。

passを使用 機能を犠牲にすることなく、シンプルさを維持しながら、パスワード管理を完全に制御できます。


Linux
  1. Linuxでアカウントのパスワードを管理する方法

  2. passwdコマンドを使用したLinuxユーザーの管理

  3. systemctlコマンドを使用してLinuxサービスを管理する方法

  1. パス–Linuxコマンドラインからパスワードを管理する

  2. Linux で ssh-keygen コマンドを使用する方法

  3. Linux の cp コマンドで正規表現をどのように使用しますか?

  1. LinuxでSCPコマンドにパスワードを渡す方法

  2. Linux で空のパスワードで ssh を許可する方法

  3. Linuxでパスワードを確認するには?