このエントリーをはてなブックマークに追加

パスワードを機械的に作成するpwgenというコマンドがあります。 完全にランダムな文字列を作る場合は乱数を利用しますが、pwgenでは 十分にランダムだけれど、ある程度、発音しやすい(覚えやすい)パスワードを作ることができます。 システム管理をしていて、ユーザにパスワードを発行するような場合に利用できます。 実行すると以下のような出力が得られます。

$ pwgen
zooKa0Ii zaej8Oop aid4Au7w quiziB3a Aiph1Iec eiluo2Oh dae6Uuvi Awoh7eeL
tho1laiR Mumee0ah qui7eRee aeJ8xo0e Wohh4sie oa5chaeS ahYoosu2 ha6he0Di
Feiv7Phu uTiyied7 xehohC5u dah5Cied un9AeT8s Shai0oon ow7ieV0o Oang5Yoo
phah4Loh aa2aeHei na6ai2Fi aeg7Ui5t hie1Shae So1qued8 roJoB2Ph ceeRao9a
wee6Teom nai8oZie leing7oV ah3ReiDa Ahnae8ai bai7oi6V ohKoon1e OoNgu6iZ
Ed5su7Ah opie0Tui UoghieH0 Baev4Aem aXeth8Xe Im7aighe xee5eiH3 Ko2gohno
EiraXoh7 Que3eebi cah8oxeM eiJ4aevi Vee7ohx5 Ose5itai iw5Sai9f Iphae9ah
ekaeR2Ai aePoodi0 eithaiN7 thee2Sah uk6Quioz Chu4naix Vahw9ual shei5AhW
oor3Poo4 Ika3ahBo coFiel5c Phoht9ch kaTuDe3i Cou9eizo Uyeiph3n Bahpa6ae
ooPae7aw cahrie1U zai9caGu lei2nahW eiGhiev4 Inge7die ohh2Mohp maB3AiL0
Eike8yaV Uthamie6 ienahTh9 Sho8ku2d waPh1ahr WaPhoe2j iw7Pi5uo Maegh6ni
AhSetho8 Egeeh4oh gee9Ithu Kah0ieje iewieQu7 iu4YuTho baBood3o do0zimiN
Die6leno Lei1yuKi jeeF7che Esh8iemo phei7Too Aiship8p Aequoo6k Tai9udei
uda8Shah yoh0Vori io4ohGee pheiS1oh hahPhah3 aiKu5ook ec5LiJai eipeiY4a
Ooxie2Uu aith0Piu ahz2Beix Si4iedah tae1BeoL Ui2Ohnge Eivu2nae ju6dooNg
ag9Ailei ahL2quue Xie2tiec iev6aeP1 on6aeW2u eo3HaiHe thah0Eid CahT8sah
Iev4vuif ooShu9Qu ao8roPe8 IeLua8ee Ibi0eidu ahng7Yai hooHah7v iesh0Vee
ooJovee4 Soophoo2 piiZoe5i oohu0Eif xahpaiB4 aeb7Naix wahV2Ahg poos5Xah
Cethohf6 ahTh6edo ieceiX7o SiShai8o eeVuJ9ej Ieh1Naax ho7maiSh vah0ooNg
eengohH9 ohReebe0 aet9EoDi Thier7ja Oe6Vahg9 juecieP5 aeyo2OhM Hee0OoRe

覚えやすいかどうかは主観ですが...覚えやすさ(読みやすさ)を考慮しないと次のような感じになります。 おそらく、上記のほうが母音や子音の並びの関係で、少し発音しやすい気がします。

$ pwgen -s
KOhe1zHW 2ZNyJOaX kVCpAOa1 5iz4Qj4g QlX9VMZ0 dycU5OLa xuOsR1BR 3zT3Vkj8
0Vy2Plj9 8m1IL5sT D1gs1JsO E93cXvDj pVYuw1WH o7PmziKN Do132NR4 3ZZgTFii
fGxe2aNF 4waVI8nS Wvd0GXCW 4v5uAQ94 hunT9bMq lAXGD0wQ o9VsWb0C KKvEv1VQ
6yTLUb7o Mso8xisB 8rboj6Hd DU4jZjoK tPWoTDo8 tumzOPN9 nswirs2T 1juInor9
z2t2CcZg MDrIfjF7 297PfNWh d0K9SWcA yQccnX2q 1wHxwCqg LqhWLI6P rz0Ef1N7
W1XdPu6k I2aKhbsN rW7uglsl bqwoo3Mv NI9M6enV Hv3gZknu swvR6ZSU zq5GNfGp
4YqPKYqh 7ZviwFQN M8XnAVfQ WPJjgdE0 tkMH0Etm O0WKeRMK UYZuIu9t GlT4k7eh
ABlYzG5c jHWygR2h XKJY8inV T7OEdLlh heZ1Hnsi 2b0cPaBk NX1uvkXq vDk4cFHQ
sIfCdp6R eaG9MUPJ 2Dlh7GXz QTm1YJUy cds6PXF2 91B2V4An toEkj1Wc 5tql1shG
bfh8eLTW eEz03Mmb M3MWf36K Ml5jTqQm K799wStM 9LDq0OVK pbHDpB1K Yj4fyel3
MduHs3iG dbte3KoD 2BgyvSxx OjH560od GTwsEb2n uhX8S0l2 Q2Xz802u afZwzml3
ASXXUP9o d48035Vg 488RkRma 5IdrtHpB pjBFTa38 zX8e53jE 5I914Esj QypKuJD7
zmCzsg0A sAPDfTs7 bKRKq6II JvzTwA75 hIf20t8H pH8LSduq stBJSn8V t4m9xFeR
wYv4bc1e 7uM3Rf41 2yf7Vwgm Q2qKFhAq A89pdY7m aHj8vatI zU3P4hZG ejTzN6Gu
ExXs2PbZ tQPXAC7o x1MH3FOi Hb3zzH5Q ewkVX4wc YSTUUwi1 XuCqX7hk ghEYRx8f
HvKC00NV FBKUUjM9 kN9LHbtq 9R7PDkAY 6qdfvhHN 6p74eN2N uqu1Ru25 Prn9wQxW
k1TvP6Wg bNY4Ppk7 jc96Ff4J oJbt84G0 Jq5ak7ys IFMZw6E4 6XmcRzjA vH04n5tV
5Fw7wLdc DAkT8L4d A79eEvBG q5kHhagT 0iZoKRbV nneA8Vwb 5sQBitjj Sf3DJvkx
ew0goVxC 3MC9y7JX v2CVLhV0 vkMgD5xu noQkwW8J CRztes4p 8KxnTG1X Ew0aVDsl
goADXIi0 tJNRrqV7 Pi3rWYYy 3lJnQrdd spXrE3hz PhGx4Vvy JNMa8Bg9 vYy3NAsk

さらにオプションを利用することで、 「紛らわしい文字列を排除する」、「数字を含む」、「大文字を含む」、 「記号文字を含む」など制御もできますし、逆に完全にランダムなパスワードを生成することも可能です。

インストール

CentOSのminimal環境だと入っていなかったためインストールします。

$ sudo yum install pwgen
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: ftp.riken.jp
 * extras: ftp.iij.ad.jp
 * rpmforge: ftp.riken.jp
 * updates: ftp.iij.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package pwgen.x86_64 0:2.06-5.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================
 Package               Arch               Version                   Repository            Size
===============================================================================================
Installing:
 pwgen                 x86_64             2.06-5.el6                epel                  19 k

Transaction Summary
===============================================================================================
Install       1 Package(s)

Total download size: 19 k
Installed size: 30 k
Is this ok [y/N]: y
Downloading Packages:
pwgen-2.06-5.el6.x86_64.rpm                                             |  19 kB     00:00
警告: rpmts_HdrFromFdno: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Importing GPG key 0x0608B895:
 Userid : EPEL (6) <epel@fedoraproject.org>
 Package: epel-release-6-7.noarch (installed)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : pwgen-2.06-5.el6.x86_64                                                     1/1
  Verifying  : pwgen-2.06-5.el6.x86_64                                                     1/1

Installed:
  pwgen.x86_64 0:2.06-5.el6

Complete!

使い方

基本

pwgenでパスワードを生成するためには、以下のように実行します。

$ pwgen [文字数] [生成数]

pwgenに与える引数のうち必須のものは特にありません。

普通に実行すると以下のようにデフォルト文字数のパスワード候補がたくさんでてきます。 手元の環境では、8文字のパスワードが140個ほど生成されました。

$ pwgen
mo3Eithi Tah8mah0 eiZ2eiza Ba9Jivob Ohp2diez Ijei3uu8 zah0Se7e shoa8Eke
suaThoo3 xieFah7a ohMaich3 ahX1pee2 feifooG4 uxueY4fo deJal7Ke Ka4ail3g
Eiw1thai AeDi0aem AWewu6hi gi9AFaen XeeBa5eH ooK1Aede Gixe9tae Maew7ue5
EuV4rie1 shooVaH6 IBiil4ja Aequ7eip Ciun3aek Jaiwix5F Ootie3du ahX2paeB
Aiqu8ohc yaimah9I ieGhie4v peaL5zae aiR4aiKe pah2Eegh uDai8oog ieth0eeD
ui6eiw5W iS6faech ai2johTh phu4uN8A GiM7que3 ahJohc8m ovoob4Ah uo2Do6Ai
ieXahng3 imeeHoa1 eePhee7n zai5Uhah uipiDai9 ir9aiNae oKao4rei aed1ci7U
Ya4phooz uroh3OoS mae7Ieza ka5Oogae Xeedu0uf thahy6Th Jei1bef7 xei5eiT2
Reid1wu4 Ohchaif8 iCho0goo Kee6wuGh Yaez8eir ha8DooWo ooFaej9u bohBoe9i
ohpoh8Le euvieC2h pahCa9ti Juu5daej HiekuY6K Eemair4z tho4CooP iso9fahZ
quumu3oM oe8eiNg7 veiD7Nai Vo3ahBov ceid0Gai faeF9dah vi4iyohC woon0Nei
IiTei3de eich9suN ieYo1pee shaiRe9n aj9Itie6 eiM7joom ooF8sena CoSh8che
zei2Shah cahg3Miu ohKie5Ja eisauGh1 eG5ula0U tahp1Ohy Yoo1Ohbe faY3ec3u
Wohsoh5i Iesh5Iph Caefee5i ahPaeK7a auJ7aeba Oum3vee3 moolia4E Pio1oiMi
neipho1P EpheeW1s ieJ2aira bae4eiNi eB9iH6Ie IPu8eire Ooyue3Ah ChaeW7qu
ahsh3Ohv reiY1ba1 Shuuxah7 geg1ieJ1 eiPhoh1a phooK7th iedoo8Ou ohm6Shae
Oidoo8Sh aQuiiC7e aa7eP3oh BahDoNi2 eePai0ic euV7edoh Oo6ofiex eiRah6ne
ukai5coH ThaCh9au Ahyoh9ju EF8niePh foh8Ruot phooWio7 OoCh7rep Iek2Soop
aiquee9J tahChah6 Ief1meMi yaid8ahT OhFar0uy ioHoos7e Nae7Ohsh ev3aeMey
acheeJ3h ahx4ioS8 aeWo1Bej ea4Ohnae oDohs1ie chaiTej5 Gaephah9 OFeu4aeg

文字数と表示回数を指定することもできます。 それぞれ10文字のパスワードにしてみます。

$ pwgen 10
Bequai1Coo oov5ohCh0o INae9EiGay iiTaez9goo peil4Ukaex Pie6zaejah Phei8quoh6
Ohb1sheef0 fungi1Gaet ja9aeK7oof Uu2VahQua2 Ogheip0iaf jie7Era4ah EaJei8ioph
bae0Ohbiem be2eu2Zoch leNgohj4ae ahfei5FiiW Shah5Feiqu chiat5ooNi Kiunohw4oh
eipeeMo8ah oolux3Ucoo giegh1wouH yav8eBuYee AeNg9aev5a Eeph3liefa ahghu9OCh2
uegiVuo8se wee5Oope9t eiGha3Kaka chee5UxaeD AeFaerai0y xee7Quiel8 sae0aifeeH
yolataib0O Airee1Azih Phohch5shu eeVei1zeeg Cohrie4Eo5 SuXahHu7al ahteu2Kagh
chaiMof8ee zoo7xo5aeJ phuy1sah5I Weij2sie5d ohwai9Aemi aiqu0tee7K okohteir3M
ooy9phaiLe Io9dahsei5 yai6ReiShe ziGah6vacu eRah8Ohmee eishai2uVo Reeth6diew
She3uuz0ee eongahDae8 EiXail4ood ii0Aad0Ijo Se8pu6Yioz RipaiR1gu0 eeYe5it5Ph
aeNg3tha6p rauCh7roor Shohnohm5o YotiePe5Pe eepuaVie5o Iechah0Au9 Eito4phaos
dous5EeY8I xigh0bohNg iu0Aewiquu awilooQu0z rieL0ooy5u Moo4bie3mo saiBe3la1t
ho5ooS7Ub1 ooV0uteebi IX9yaish2l toiy7Muzoo eeph1cieLu ienooWoh0w IafugeruF5
ooZoo6xeix eNgie8ohpo xoPhai7eiR thie1roo5U eingier7To Paukooz2qu Joo7quee0i
Ub4Rahlap0 ahZae5aiqu ieth6Eejei Thu3phae3y PeYieN5cho pa8Gahheix Voh2ahb3xe
ti4EJo0joo aigh3Dae4x xieKagath8 Eegah0iesh El4she5ohs azaeN6Ub1U su6Eiqueex
Ohseegu1ie dah1iec9Ai Aiyae4woob eiBonohk4a eiHe7ahghe YahtohD8ee ohfee9Meit
oo2ieShaix iojuiNeo4V her3ieG9ph jug2aiwohY aiPh6tahN3 zae5ju0eeS zo0nouGu5j
Thie8baiMo uHae8fei0u Lae8faic4i iew2Auj8ao Tei3aeshei Eex7Iequai oong6biiK9
Gash3eush8 Fo6heegie6 aSaeloh5fo cuafaPh1Oo YeiVei6oor ziaVoh6yai EijoDi0eox
veec4Aenee new8Zai6Fi Chi2utah1l Queji5naiT uagohboh9I oNohng4pae Teigooqu7u

個数を指定してみます。

$ pwgen 10 1
eiH8eijeid
$ pwgen 10 5
iozaK2so3i uZaiChie6I iethuZo0ud chiJ2eixoh Quoo1gieta

文字種類を制限してパスワード作成

さらにいろいろなオプションを利用して目的に合わせた使いやすいパスワードを生成することができます。 数字を入れない場合。

$ pwgen -0 10 14
teethaeMie yeutaaGhih yaeTavaequ ahTaiheeVu Yiexaisohp meeTunuugh Eekahbeahu
UughieNguu Eipayiesud aiquaecioL AibeThahyu XaimieHeen ohdeiToogi yaothuoThu

大文字を入れない場合。

$ pwgen -A 10 14
oosho5ahh6 aisaing9ae iga0iewoh6 eil1ea9iey xahteib3po osh9boo9ot daeg3tief4
ahzae0iong shoo2evaen iedanie7ei chohmoo7ei ohae0eelee co6jilohne om7iegho5g

最低でも1文字は大文字を入れる場合。

$ pwgen -c 10 14
Becahghu6t Kohy3aiHah te7xeeZua7 Bi3aicuumo eeHopoo9Ee Thah6ahwoh NahJ7beedi
ceith9Phia te5iuNg3ga aim2oV9Ruk xuRaj0ieze Aireikei0E Ieph3wei0G Aimai7aiK1

最低でも1文字数字を入れる場合。

$ pwgen -n 10 14
zeeCieZ4Xe Daiseeshi3 IeB9hohche Tae1uaphe1 hueng3Oopu qui2ohgeiR aYa9furaQu
vaeSh1feQu Pajooth0xo xain0Toh8x ohN3uxeiho naX1Cuong2 eiyee6faiP cahP3aicui

母音を使わない場合。

$ pwgen -v 10 14
kwGfc9qHBl xdbf9pjtR2 MSQl35WmzC GLzf5FFbld VPVCsNh2z9 7mSNGpvSbc 5mkwxrZrjg
pj8HQmN2px lKg42HWxkh F3sDw9Bzk2 lHX78t79PB 8NfLDFJ94S 6dMPdFpm73 GzgTTL3P4l

最低でも1文字記号を入れる場合。

$ pwgen -y 10 14
Sie)b8lai9 coom3Aech{ Oem,aip7uo Eb/ee6cooH fai0Soh't6 yohng0iuP< Qua_X2neil
jeeK9ieH$e Eew4Ealai: soh#po3Me_ Aeh%ei5nai thuy8iye(C Ohp{iegu0o Na0aiph`ee

完全にランダムで安全なパスワード。 人が覚えるておくものというよりは、コンピュータ向けだそうです。

$ pwgen -s 10 14
u6aZH4UVac kQI6y6t1AL qd5aGnCQBu GILuXAo0jN WGOQPERLJ0 MVKq6iavOT AYVVz0rwG2
BD3gU8xRbN xGwz3AHBb9 ASDaQfOx6M W9eFZw8fxq Zx6vdEAUYL dIh4JYS9bC TMChle2uRQ

あいまいな文字を排除したパスワード。 man上は、1(イチ)とl(小文字エル)、0(ゼロ)とO(大文字オー)を排除とあるが、O(オー)はある気がします。

$ pwgen -B 10
oa7eimeeQu oThooj7bai Ahn4opooti OovachaB7a fa3ooNohc7 eiJohseeR3 riengeiQu9
eng7ooM4sh Ohcome9uga kei4Phaeya theseiQu3n chaeb3Quee oohiebaeX7 AhqueaT3ye
kaiQu3Uhat Kaivaivu3c Pie7heekoa cietioph7I Cohfuo9hai eedo4Daeyu feiwahFa3y
ohgahSh3za Oongoogie7 eeDeiNgei4 quaDai9aKa Eeyeivoo4b eeg3Mootat ieH4gaoy4F
ag9Ag9uaG7 ahMoofaa3d Eeghesi7th eCh9chuTha OoneeShei7 Eithoh7iem eephieNg4x
koos9Chai7 Au3soo4aaj ooyabuM4Uo IeNoo9ieng ooyaipu7Se aev9Ochaer Ooj7ughei9
vi4rooFua4 Sah7Eo3uze quohCh9ado ievung9Que Aishae4dai ei7IeFu9ei iex3cooC7c
eiTohj7phe kee7rooSha eivaefohF7 phai3aeYai iere3baeTh Eekoo4uy4a eb3waeJohB
kae9ein3Th Heigh7Ahp3 meech7VaFe oocei3Bahj aiyohH9ee7 uaTeegi4te aequ9ieXie
oboCh3uaca yaGhae7teF ceey4soY3E Erahquuo7u Xaeni3ReiP Ro7ahD3ahw rooFieD9oo
ei9ohmohB3 wahv3ahZ9e Dooph9eiQu ahgh3Fahph iet7mo4uZu SahZo4Yeed ahshahph3E
Aiviemu3ni exaiVam3ye aiWei7wah9 Xahngoon3A Iu7johvooD iagohph7Ei ap7tie7ohH
bou7hah4Sh doP9xeimut ja9RerieHu Seeh9edeth Rah3ni9Neu ceechahN9v waeTee3OBe
eib4Jua9ae niTh9oobie gah4kei9Oh kee4Ogifie shohY7hay7 phooCh4zoh EeS9iah3ai
jeeTouk3zo phaez4Phu7 ui7jeoQu9b Cech4eQuah Eequ9vohsh iath4Raech Veemi4eexe
ieZawoh7He IfoeY7uQue Ji3aediech hoo4peShee ohkeZai3fi Hei7angohz Tou7faeW9t
Nai9reehae Rahshae4ik eishaC7huu qua4aChaim aeDeeSuri3 Epohghaec7 hiex4AhGhi
aef4Gohj4i Ses7Ikiep9 usaeNaiw9e eeBe9ain7n Mucirei4at Ahsh9ahqu4 Gahchoh3oh
Rae4minaij vohC3Sudie ugh3Ahhaeb Ier9ig9Pai Jo7jieD7ei Unoay3xu9J Aungoe7cei
yeeWae4ix7 aeR3aaquuo Doy3ta9poh Ahkie9uash vi3Eechoo7 yooF9ighoh AhCh4pupoh

1行に1個ずつ表示。 この方がプログラムから扱いやすそうです。

$ pwgen -1 10 14
ruSuaxo1xo
ooB6ahvohH
aBaehee9mu
Shai7eweeg
oor4Eekaig
ooHewe8soo
daeP9aivei
oZaeTh1Ivo
ahmeir7Pa4
iengooCee1
feigiegu7I
AeN9ahb4ie
OvooS8phah
haeph8eeSh



記事一覧へ