「OTPW」というpamモジュールを利用して、銀行のパスワードカード(三井住友銀行のちょっと前の認証形式みたいなやつ)に似た認証形式を利用できるようなので、Ubuntu 14.04 LTSで設定してみることにした。
1.インストール・設定
まずはOTPWのインストールおよびsshdへの設定追加を行う。
以下のコマンドを実行し、OTPWをインストールする。
sudo apt-get install otpw-bin libpam-otpw
インストール完了後、「/etc/pam.d/sshd」の以下の項目について編集する。
●/etc/pam.d/sshd
#@include common-auth # コメントアウト
auth required pam_otpw.so # 追記
session optional pam_otpw.so # 追記
次に、sshdの設定ファイルである「/etc/ssh/sshd_config」について、以下の項目・内容について編集をする。
●/etc/ssh/sshd_config
UsePAM yes
UsePrivilegeSeparation yes
ChallengeResponseAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
最後に、sshdの再起動を行い変更を適用する。
sudo service ssh restart
2.パスワード表の生成
sshの設定が終わったら、以下のコマンドを実行してパスワード表を作成する。
このとき、パスワードの照合を行うファイル(~/.otpw)を暗号化するパスワードの入力を求められるので入力する。
※このパスワードはログインの際にも利用するので覚えておくこと。ここでは"test"というパスワードを指定したものとする。
otpw-gen
blacknon@BS-PUB-UBUNTU-01:~$ otpw-gen
Generating random seed ...
If your paper password list is stolen, the thief should not gain
access to your account with this information alone. Therefore, you
need to memorize and enter below a prefix password. You will have to
enter that each time directly before entering the one-time password
(on the same line).
When you log in, a 3-digit password number will be displayed. It
identifies the one-time password on your list that you have to append
to the prefix password. If another login to your account is in progress
at the same time, several password numbers may be shown and all
corresponding passwords have to be appended after the prefix
password. Best generate a new password list when you have used up half
of the old one.
Enter new prefix password:
Reenter prefix password:
Creating '~/.otpw'.
Generating new one-time passwords ...
OTPW list generated 2016-06-25 16:03 on BS-PUB-UBUNTU-01
000 %%7i VIoI 056 uK=9 Qw:n 112 2V/= 7%oD 168 amic +XuO 224 9RHg P/E7
001 O4H/ BNQa 057 S4=9 mI8p 113 7gwd AdoU 169 /=kL +s94 225 ACpd =ouu
002 Sx5W KoXb 058 Lcdo Vs8U 114 qyCn dbqm 170 QO:P 6OOi 226 co:C dnRz
003 R6aG vjQ/ 059 qTPM GMrG 115 WFzH :gWX 171 csxO pddy 227 8Xpg efP8
004 dW%F ikTh 060 XPoE 3VT/ 116 fyaG ndA7 172 mMET JUb+ 228 =Ldo msh+
005 gSVG zFCT 061 GTUK jVoC 117 3CG5 RCep 173 RrnQ :ddy 229 EA2Q RRtb
006 qVyN %vRN 062 SDyD g:IK 118 YO:i QiWm 174 2Tza A:cE 230 xNc= 7sf2
007 HVjt Gg4i 063 :BNU nwQH 119 :vpZ Le28 175 =iv4 +RN6 231 FBLH YGha
008 LSj2 jPPX 064 7T4e m5yA 120 r7z4 pNQ6 176 pGag :NYj 232 d9o3 T6=S
009 Zezo rdAJ 065 MJLz 4/:p 121 M/j% t=Wb 177 BV=Z WfWS 233 7CwZ tgcc
010 3XaD LeC5 066 ky9R YtMo 122 nji% WEML 178 cbcI 29Hk 234 7Xc/ To2c
011 4:qv y3rp 067 cBIq Rq+o 123 QYYi zbdg 179 Ty8r 4gEX 235 :9wX EK+d
012 bjjz WzB+ 068 MQza sLvB 124 d%Xe u:Jy 180 iBzK F=Ey 236 nCC+ bhnS
013 Wa88 4V:d 069 PcSf Pt3G 125 r7vG qBKG 181 NPP9 TMC4 237 t/oi yAK9
014 HbkY V76I 070 kKBF bCz% 126 g%aN TEqH 182 jx%P PsNR 238 :Q9r z+RS
015 8=dS u5QH 071 26Sa ZBXv 127 v5y5 DSzv 183 bFug +6JF 239 4:/6 T6D4
016 bWDu ZZYk 072 BB/P EOwy 128 xLZn uvpa 184 qk%R wXMf 240 huxJ JAkd
017 UuNy Phxh 073 5Qw= :yxX 129 VDsX e=Dp 185 DxvW u9Xa 241 rIm9 z3mZ
018 Gpt9 iLpp 074 nUyi AFrQ 130 YvD/ tHN/ 186 :9w2 SrJN 242 bxB4 TEBJ
019 :3uQ yLIB 075 HFVG PLLL 131 aZ9q FELd 187 T5hf DBAq 243 teoc cOXx
020 HN7m bbFo 076 BJqj rH%Y 132 wSsn JQnx 188 q:vG uhtf 244 xXij TWFh
021 YqW5 WQE4 077 IZ:s GcmD 133 R4Y4 IroK 189 %8yC %2wQ 245 YA5H NkoX
022 MdeW 8GzI 078 Pt7A y5xz 134 3EFI /ZKE 190 AGH6 CCmG 246 +4fy WLRz
023 ubg9 M%eS 079 VXdD benc 135 i/u5 SZNy 191 GbQd 5uxu 247 d5fG ym++
024 K8Em bTpu 080 UI8g %p8u 136 URPS JQgp 192 SrZV Y4qt 248 rdWY Zg4n
025 LL/H b3TO 081 F=E/ mhNj 137 8Y5J L+dq 193 FPXN 9Fwu 249 yZmG boug
026 Y:gF JAyT 082 s/RN BFkH 138 jFoN arTo 194 pY7w HOr8 250 EuVb RWr:
027 hPHA :8xi 083 LprC crzU 139 3nV6 =irV 195 AhWe v6SP 251 r4bK V9wG
028 h3/C pscI 084 YKbE B+8Q 140 a2kE 6Ab3 196 kRss rVcE 252 KmxF Bzbv
029 rSNZ SDPP 085 fDJI drZ3 141 EIfV iBVM 197 iCTW yXd/ 253 MRBm UTp=
030 NxvY cxLV 086 L5s: q=So 142 rxa: CaDI 198 XW7x muuY 254 I93H cL4V
031 JQtc %bk3 087 FFJ3 7Mq% 143 +7Jw vQuS 199 xJI= r2WT 255 ZD/C g:xH
032 Y9DP nfda 088 :exB Kfin 144 37jO g4nP 200 NdvW 3NQW 256 5MzY DYF=
033 yDqD KUMM 089 sFjC g6Zq 145 ekfG bKOI 201 ib5M w5fk 257 mQni mI:F
034 3S7r mp6I 090 qo%h 77H2 146 L%EA 2=4h 202 3dxi I94= 258 i7Pg =:IJ
035 WzVs z36j 091 83RI :fLy 147 pv9c QBi% 203 tKKw /go+ 259 XKCp Ys=d
036 K7A3 kVAM 092 yGdj gw8G 148 gD+T =ymQ 204 nHxC CKGh 260 Uzqn UjrX
037 Q2O6 2O97 093 LcjZ PT5u 149 9CVX UFAy 205 =Qwf aYfR 261 WZBs zEy3
038 bFVf Qfwx 094 t5i2 bsQ9 150 MeHq =dSY 206 jh/M q5xA 262 j=zY M9JG
039 %x8e XpSG 095 jAX7 8AwW 151 CUhM Ftaj 207 bmQn =UCY 263 5Fsh Au3a
040 WX%T 6cAu 096 %8JB U5WA 152 Oawb e=nC 208 7WG3 ASH6 264 n79W EDgW
041 nFVN 83uv 097 UYth Co6A 153 9PgG rUKq 209 xjE2 96:m 265 g:Mm zb7G
042 ZyJn eFTP 098 Vt44 mpp3 154 dnzb Y3nt 210 eSoY yF8u 266 54Me :yVK
043 WSd3 y7ND 099 sZMJ ReIv 155 dP9d cYzt 211 zLCS ds8B 267 qW=7 5s7I
044 8S=: +Vsx 100 zPi4 co9r 156 VMZN pwnU 212 79vJ 9jJP 268 c2k/ z=ev
045 :vXx orM2 101 7R+V /CvX 157 HsHh kvhs 213 SMwH Ui5h 269 j8X/ 6ind
046 ueww Mbu7 102 vusO LCut 158 TBBs IRy5 214 kJuQ oNsY 270 WoB7 D+Ou
047 FKU= X%s: 103 SauT aY9W 159 rQCA fiFp 215 Grx% ZSM7 271 T4y2 6SfJ
048 Yp8Y U%Yr 104 4Xeb 62Q/ 160 2:Q/ ZsJC 216 pfDE DIck 272 ZUfL XHe/
049 cEPs hEdc 105 :Hdc %imD 161 +YSy nrx8 217 PFxT v%/D 273 hIKK %ApN
050 qcC= 8idV 106 N=AT Txp2 162 SYsx Iygm 218 T/mn qMfh 274 BzKz hyIG
051 GHn2 9Anf 107 :XsB IcIw 163 Y+x: bxJS 219 j6+X fNtc 275 ZLp2 m%Tt
052 HaQP E:oQ 108 nVGK +BgG 164 RHXB FktC 220 b2Yv T/5q 276 YjBp oTOG
053 LFSC SPHe 109 XZWC oSCp 165 eWiN 8+97 221 6q%z gUO6 277 fg+F Bz9k
054 BMBI t3kA 110 ik/a 6LfZ 166 sf:j AWXI 222 kSMw issU 278 :R%n UXf+
055 IjMa Fci2 111 527U 6TYH 167 436T V/+e 223 8898 DuoX 279 %Gz+ QbWA
!!! REMEMBER: Enter the PREFIX PASSWORD first !!!
どこかのテキストファイルに書き出して持ってるとよいだろう。
(表のパスワードは後から同じコマンドで変更できる。)
3.sshでログインする
さて、それでは実際にログインしてみよう。
sshコマンドを利用してログインすると、以下のようにパスワード入力を促される。
[root@BS-PUB-CENT7-02 ~]# ssh blacknon@172.20.100.120
Password 150:
この場合は、暗号化パスワードと作成されたパスワード表の150番を組み合わせて入力してやればよい。
つまり、上の表を例にすると以下のように入力する。(暗号化パスワードとパスワード表のキーワードの間にはスペースが入らない点に注意)
test</span><span style="color: #0000ff;">MeHq =dSY</pre>
これでログインできるようになる。
```shell
[root@BS-PUB-CENT7-02 ~]# ssh blacknon@172.20.XXX.XXX
Password 050:
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-25-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Sat Jun 25 16:43:15 JST 2016
System load: 0.0 Processes: 101
Usage of /: 4.4% of 37.04GB Users logged in: 1
Memory usage: 4% IP address for eth0: 172.28.0.XXX
Swap usage: 0% IP address for eth1: 172.20.100.XXX
Graph this data and manage this system at:
https://landscape.canonical.com/
182 packages can be updated.
99 updates are security updates.
New release '16.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Last login: Sat Jun 25 16:43:17 2016 from 172.20.100.XXX
blacknon@BS-PUB-UBUNTU-01:~$
なお、何度も間違えると「~/.otpw.lock」というファイルが作成され、求められる入力パスワードの数が3個になる場合がある。
この場合は、「暗号化パスワード+パスワード表のキーワード1+パスワード表のキーワード2+パスワード表のキーワード3」というように組み合わせて入力する必要があるようだ。もしくは、「~/.otpw.lock」というファイルを削除してやることでこの状態は解除できる。