使いやすいSSHサーバーを保護したい二要素認証? Googleは、Google認証システムの時間ベースのワンタイムパスワード(TOTP)システムをSSHサーバーと統合するために必要なソフトウェアを提供します。接続時に携帯電話からコードを入力する必要があります。
Google認証システムはGoogle —すべての作業はSSHサーバーと電話で行われます。実際、Google Authenticatorは完全にオープンソースなので、自分でソースコードを調べることもできます。
Google認証システムをインストールする
で多要素認証を実装するにはGoogle認証システムには、オープンソースのGoogle認証システムPAMモジュールが必要です。 PAMは「プラガブル認証モジュール」の略です。これは、さまざまな形式の認証をLinuxシステムに簡単にプラグインする方法です。
Ubuntuのソフトウェアリポジトリには、Google Authenticator PAMモジュール用のインストールが簡単なパッケージ。 Linuxディストリビューションにこのパッケージが含まれていない場合は、Google CodeのGoogle Authenticatorダウンロードページからダウンロードして、自分でコンパイルする必要があります。
パッケージをUbuntuにインストールするには、次のコマンドを実行します。
sudo apt-get install libpam-google-authenticator
(これにより、システムにPAMモジュールのみがインストールされます。SSHログイン用に手動でアクティブ化する必要があります。)
認証キーを作成する
リモートでログインするユーザーとしてログインし、 google-authenticator そのユーザーの秘密鍵を作成するコマンド。
Googleを更新するコマンドを許可しますyと入力して、認証ファイル。その後、いくつかの質問が表示され、同じ一時的なセキュリティトークンの使用を制限したり、トークンを使用できる時間枠を増やしたり、ブルートフォースクラッキングの試みを妨げる許可されたアクセスの試みを制限したりできます。これらの選択はすべて、ある程度の使いやすさのためにいくらかのセキュリティを犠牲にします。
Google認証システムにより、秘密キーといくつかの「緊急スクラッチコード」。緊急スクラッチコードは安全な場所に書き留めます。これらは1回だけ使用でき、携帯電話を紛失した場合に使用することを目的としています。
Google認証システムに秘密鍵を入力しますスマートフォンのアプリ(公式アプリはAndroid、iOS、Blackberryで利用可能です)。また、バーコードのスキャン機能を使用することもできます。コマンドの出力の上部近くにあるURLに移動すると、携帯電話のカメラでQRコードをスキャンできます。
これで、携帯電話で確認コードが常に変更されます。
複数のユーザーとしてリモートでログインする場合は、各ユーザーに対してこのコマンドを実行します。各ユーザーには、独自の秘密鍵と独自のコードがあります。
Google認証システムを有効にする
次に、SSHログインにGoogle認証システムを要求する必要があります。そのためには、を開きます /etc/pam.d/sshd システム上のファイル(たとえば、 sudo nano /etc/pam.d/sshd コマンド)、ファイルに次の行を追加します:
auth required pam_google_authenticator.so
次に、 / etc / ssh / sshd_config ファイル、見つけます ChallengeResponseAuthentication 行、および次のように変更します。
ChallengeResponseAuthenticationはい
(もし ChallengeResponseAuthentication 行がまだ存在しない場合は、上記の行をファイルに追加してください。)
最後に、変更を有効にするためにSSHサーバーを再起動します。
sudo service ssh restart
SSH経由でログインしようとすると、パスワードとGoogle認証システムコードの両方の入力を求められます。