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