ウェブサイト検索

Linux コマンドラインからランダムなパスワードを生成する方法


強力でランダムなパスワードが必要ですか?Linuxはそれを非常に簡単に生成できるので、パスワードマネージャーは必要ありません。

私はしばしばランダムなパスワードが必要です。ほとんどの場合、そのパスワードはアプリやサービスのユーザーアカウントを作成するために使用され、その際には非常に優れたランダムパスワードジェネレーターを含むパスワードマネージャーを使います。

しかし他の時には、パスワードマネージャーに保存する必要のない一時的なパスワードが必要な場合もあります。あるいは、それが永続的なパスワードであっても、リモートマシンからデスクトップにログインしていて、使用できるツールはコマンドラインだけの場合もあります。

理由に関係なく、ランダムなパスワードを生成するための簡単なLinuxコマンドがあります。そのツールはpwgenと呼ばれています。以下にインストールと使用方法を示します。

pwgenをインストールする方法

必要なもの:これに必要なものは、Linuxディストリビューションとsudo権限を持つユーザーだけです。

1. DebianまたはUbuntuベースのディストリビューションにpwgenをインストールする

Debian または Ubuntu ベースのディストリビューションに pwgen をインストールするには、ターミナルウィンドウを開き、次のコマンドを入力します:

sudo apt-get install pwgen -y 	

2. Fedoraベースのディストリビューションにpwgenをインストールする方法

Fedora系のディストリビューションにpwgenをインストールするには、ターミナルウィンドウを開いて次のコマンドを入力します:

sudo dnf install pwgen 	

3. Arch系ディストリビューションにpwgenをインストールする方法

Arch系ディストリビューションにpwgenをインストールするには、ターミナルウィンドウを開き、次のコマンドを入力します:

sudo pacman -S pwgen 

4. SUSEベースのディストリビューションにpwgenをインストールする方法

SUSEベースのディストリビューションにpwgenをインストールするには、ターミナルウィンドウを開いて次のコマンドを入力します:

sudo zypper install pwgen 	

この時点で、アプリは準備が整っているはずです。

pwgenの使い方

1. 単一のパスワードを生成する

16文字のパスワードを生成したいとしましょう。そのためのコマンドは次の通りです:

pwgen 16 1 

2. 三つのパスワードを生成する

16文字のランダムなパスワードを3つ作成する必要があるかもしれません。そのためのコマンドは次の通りです:

pwgen 16 3 

3. パスワードのリストを生成する

16文字のパスワードのリストが必要かもしれません。そのためには、次のコマンドを入力してください:

pwgen 16 

ご覧のように、最初のオプションはpwgenにパスワードの長さを指定し、2番目のオプションはpwgenに生成するパスワードの数を指定します。

pwgenには複数のオプションも使用できます。これらのオプションは次のとおりです:

  • -c または --capitalize - 少なくとも1つの大文字を含めてください。
  • -Aまたは--ノーキャピタライズ - 大文字を含めないでください。
  • -n または --numerals - 1つ以上の数字を含めてください。
  • -0または--ノン・ニューメラル - 数字を含めないでください。
  • -y または --symbols - 少なくとも1つの特別な記号を含めてください。
  • -r または --remove-chars= - 文字セットから文字を削除する
  • -s または --secure - 完全にランダムなパスワードを生成する
  • -B または --ambiguous - あいまいな文字を含めないでください。
  • -H または --sha1=path/to/file[#seed] - 指定されたファイルのsha1ハッシュを(それほど)ランダムな生成器として使用します。
  • -C - 生成されたパスワードを列に印刷する
  • -1 - 生成されたパスワードを列に印刷しないでください
  • -v または --母音なし

覚えておくべき一つのことは、pwgenにはかつて--no-spaceオプションがあり、これによりスクリプト内で正規表現を使用することが可能だったということです。そのオプションは現在廃止されているため、pwgenコマンドでスクリプトを書くのは以前よりも少し複雑です。以前は数行でできたことが、今ではずっと長いスクリプトを必要とし、次のような形になります:

#!/bin/bash

Password length PASSWORD_LENGTH=16

Number of passwords to generate NUM_PASSWORDS=5

Characters to include (lowercase, uppercase, digits, symbols) USE_LOWERCASE=true USE_UPPERCASE=true USE_DIGITS=true USE_SYMBOLS=true

Function to generate a password generate_password() { local characters="" if $USE_LOWERCASE; then characters+="abcdefghijklmnopqrstuvwxyz"; fi if $USE_UPPERCASE; then characters+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; fi if $USE_DIGITS; then characters+="0123456789"; fi if $USE_SYMBOLS; then characters+="!@#$%^&*()_+=-`~[]{}|;':\",./<>?"; fi

local password="" for i in $(seq 1 $PASSWORD_LENGTH); do local rand=$(( RANDOM % ${#characters} )) # Get random index local char="${characters:$rand:1}" # Get character at that index password+="$char" # Append to password done echo "$password" }

Generate passwords and print them echo "Generated Passwords:" for i in $(seq 1 $NUM_PASSWORDS); do password=$(generate_password) echo "$password" done

Example: Store passwords in an array (optional) password_array=() for i in $(seq 1 $NUM_PASSWORDS); do password=$(generate_password) # Regenerate passwords. If you want to use the first password_array+=("$password") done

Print any errors while generating and storing passwords if [ $? -ne 0 ]; then echo "An error occurred" fi

(Extra) Example of working with the saved passwords in the array echo "Stored in password_array:" for password in "${password_array[@]}"; do echo "$password" done

そのランダムなパスワードを楽しんでください。

関連記事: