SSH鍵認証接続

SSH接続を鍵認証で行う方法

公開鍵と秘密鍵使った認証の概要

鍵認証とは、その名の通り鍵となるファイルを使った認証方式で、ちょうど鍵と錠前のように「公開鍵」と「秘密鍵」のペアを合わせることで認証される仕組みです。このうち「公開鍵」はサーバー側に設置しておき、「秘密鍵」をクライアント側に持っておきます。

秘密鍵を持っているクライアントだけが公開鍵のあるサーバーにログイン(ルートになるには、別途パスワードの入力が必要です)できるということで、他のPCからのアクセスを防ぐことができます。但し、秘密鍵を盗まれてしまうと、パスワードの入力だけでログインできてしまうのと、紛失してしまうと新たに作成しないとログインできなくなってしまうのでしっかりと管理します。

クライアント側で秘密鍵と公開鍵を生成する

ルートディレクトリに「.ssh」フォルダを作成します(無い場合)

「.ssh」フォルダのパーミッションの変更

下記の通り変更しますクライアントPCがLinux OSを想定しています(Windowsでは未確認)

キーペアの生成

「.ssh」フォルダに移動して次のコマンドで秘密鍵と公開鍵のキーペアを生成します。その際にパスフレーズも設定しますので、忘れないように控えておきます。

鍵のファイルの確認

「.ssh」フォルダに秘密鍵ファイルである「id_rsa」と、公開鍵ファイルの「id_rsa.pub」が生成されているのを確認します。

補足:秘密鍵と公開鍵のキーペアで「id_rsa」「id_rsa.pub」と異なる名前にしたい場合(すでに存在していて名前が同じになる時など)はキーペア作成のコマンド入力後に表示される下記のタイミングでファイル名を変更することができます。

これでキーペアが「変更後のファイル名」「変更後のファイル名.pub」になります。

公開鍵である「id_rsa.pub」の中身を下記コマンドで表示させて、その中身に書かれている内容を全てコピーします。

サーバー側に公開鍵を設置する

公開鍵の設置

サーバーへログインして、先ほどと同じくログインユーザーのルートディレクトリに「.ssh」フォルダを作成しパーミッションを変更します。最後に「.ssh」フォルダへ移動しておきます。

公開鍵ファイルの生成

「.ssh」フォルダ内に「authorized_keys」というファイルを作成します。viエディタでファイルを作成し、先ほどクライアント側で作成した公開鍵「id_rsa.pub」の中身をペーストして保存します。

公開鍵ファイルの設定

作成した「authorized_keys」のパーミッションを変更します。

動作確認

一旦ログアウトして下記のコマンドを入力し公開鍵を使った方法でログインできるかを確認します。

パスワード認証の禁止

ログインができれば、rootユーザーにスイッチして以降はユーザー名でのパスワード認証ができないように「sshd_config」ファイルを編集します。viエディタでファイルを開きます。

ssh設定ファイルの変更

「sshd_config」ファイル内の下記の項目を次のように変更し保存します。

ルートでのログインを禁止

「sshd_config」ファイル内に有る設定を次の様に設定します。

設定の反映

SSHサーバーを再起動して変更内容を反映させます。最後に公開鍵認証でログインができ、ユーザー名とパスワードでのログインができなくなっているのを確認します。

これでペア鍵を持っているサーバーとクライアント間でしかログインができなくなりました。。

上部へスクロール