『入る学科間違えた高専生』の日記

プログラミングのコードを書いたりする予定です。あとは日記等。あといつまで高専生やねん

ラズパイへのSSH接続に2段階認証を導入した話

はじめに

今回は,普段私が使っているRaspberry PI2 Model BSSH接続をする際に2段階認証を導入した話です
2段階認証にGoogle Authenticatorを使用しました.

Google Authenticator
Google Authenticator
開発元:Google, Inc.
無料

ダウンロードは上のリンクからどうぞ〜

Google Authenticationをインストール

pi@raspberrypi ~ $ sudo apt-get install libpam-google-authenticator -y

アプリとの連携

pi@raspberrypi ~ $ google-authenticator

f:id:nanashinodonbee:20151210030843p:plain

何やら出てくるので,アプリ側で登録!

登録方法は省略します....

あとターミナル側で聞かれる質問には全部「y」でOK

QRコードの下にリカバリーキーとかが出てるのでメモをするのをお忘れずに!

SSH設定ファイルの編集

/etc/ssh/sshd_config

51行目当たりの「ChallengeResponseAuthentication」を「yes」に変更

ChallengeResponseAuthentication no  
↓  
ChallengeResponseAuthentication yes

/etc/pam.d/sshd

下記を追加

auth required pam_google_authenticator.so

SSHDemon再起動

pi@raspberrypi ~ $ sudo service ssh restart

実際に接続

f:id:nanashinodonbee:20151210031936p:plain

こんな感じにはじめにログインパスワード,そしてワンタイムパスワードを入力してくれと表示されるようになりました.

パスワード同様にワンタイムパスワードもどうやら入力してもターミナルには表示されない仕様になっておらせられるようです.ワンタイムパスワードだからあんまり関係ないんですけどね

注意事項

アプリが入っている端末とSSH接続先のホストのタイムゾーンが合っていないとログイン出来ないと思います.なので時間は合わせておきましょう!

最後に

今回はラズパイのSSH接続にワンタイムパスワード(2段階認証)を導入してみたお話でした!以下小話...

ポート番号を変えるとかRSA認証とかを組み合わせてセキュリティ面で少しでも優位に立つことが重要だと思うので,ワンタイムパスワードも中々良いツールだと思ったので今回は導入をしてみました.

ただ弱点としてあげるならば,リカバリーキーなくしたら死亡ということでしょうか.あとは,ユーザが毎回アプリを開いて文字列を入力しなくてはならないという面倒臭さが発生してしまう.といったところでしょうか?
メリットは言うまでもなく,使い捨てパスワードなのでパスワードを自ら生成しなくてもいいということ,もし漏洩しても1分程度で新しくパスワードが生成されるから使用できなくなる.

蛇足

後期中間試験が終わりました.非常に面白い結果になって返ってくる予感です.
そろそろラズパイを使った温度計の記事書こうかな...

参考文献

http://www.sorinmustaca.com/2013/04/09/enable-two-factor-authentication-for-the-ssh-on-your-raspberry-pi/www.sorinmustaca.com

関連商品

[asin:B00T356SFO:detail]