SSH公開鍵認証の設定(CentOS7)

logo-centos-7
SSH公開鍵認証にて「test」ユーザーがサーバーへログイン出来るようにする。
パスワード認証でのログイン、「root」ユーザーでのログインを禁止する。
ターミナルエミュレータは「RLogin」を使用する。

SSHの設定(サーバー側)

公開鍵認証を使用出来るようサーバー側で「sshd」の設定を変更する。

※「root」ユーザーで実行

「sshd_config」ファイルを開き「RSAAuthentication」「PubkeyAuthentication」「AuthorizedKeysFile」の設定項目を有効にし保存する。

[root ~]# vi /etc/ssh/sshd_config
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile     .ssh/authorized_keys
 ※この3行のコメントを外す
  CentOS7では3行目はデフォルトで有効になっていた
[root ~]$ 

「sshd_config」の構文チェックを行い、問題なければ設定を反映させる為「sshd」を再起動する。

[root ~]$ sshd -t
[root ~]$ systemctl restart sshd
[root ~]$ 

認証鍵の作成(クライアント側)

認証鍵の作成はサーバー側でもクライアント側でも出来るが、サーバー側で作成するとログイン時に必要な秘密鍵をクライアント側へダウンロードしなくてはならず、その経路でパケット盗聴されてしまう恐れがある。
そこで、クライアント側にて認証鍵を作成し公開鍵をサーバーへアップロードする。
今回はターミナルエミュレーターの「RLogin」を使用して認証鍵を作成する。

①Rloginを起動し、新規をクリックする

【新規】をクリック

②[プロトコル]メニューの【認証キー】をクリックする

[プロトコル]メニューの【認証キー】をクリック

③【作成】をクリックする

【作成】をクリック

④[パスフレーズ]を入力し【OK】をクリックする

ここで入力したパスワードは秘密鍵のエクスポート、及び秘密鍵でのログインに使用するため忘れないようにする。

[パスフレーズ]を入力し【OK】をクリック

⑤[認証キーリスト]に作成した鍵が表示されるので、選択している事を確認し【エクスポート】をクリックする

【エクスポート】をクリック

⑥保存先ファイル名と2.4で作成した[パスフレーズ]を入力し【OK】をクリックする

ファイル名は「ユーザー名_サーバー名.rsa」とかにしておくと分かりやすい。

保存先と[パスフレーズ]を入力し【OK】をクリック

⑦[認証キーリスト]に作成した鍵が選択されている事を確認し【公開鍵】をクリックする

【公開鍵】をクリック

⑧【OK】をクリックすると公開鍵がクリップボードにコピーされるので、メモ帳などに保存しておく

【OK】をクリック

公開鍵の設置(サーバー側)

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

※「test」ユーザーにて作業

「test」ユーザーのホームディレクトリに「.ssh」ディレクトリを作成し、パーミッションを「700」に変更する。

[root ~]$ su test
[test /root]$ cd ~
[test ~]$ mkdir .ssh
[test ~]$ chmod 700 .ssh

そのディレクトリ内に「authorized_keys」ファイルを作成し、で保存した公開鍵を貼り付けて保存、パーミッションを「600」に変更する。

[test ~]$ vi ./.ssh/authorized_keys
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
※公開鍵を貼り付ける
[test ~]$ chmod 600 ./.ssh/authorized_keys

秘密鍵を使用してログイン

秘密鍵を使用してログイン出来るか確認する。

[サーバー]メニューを選択し、エントリー、プロトコル、「Server Address」、「User Name」 「Password」を入力、【参照】をクリックする

「Password」は「認証鍵の作成④」で設定したパスフレーズです。

[サーバー]メニュー

保存した秘密鍵を選択し【開く】をクリックする

秘密鍵を選択し【開く】をクリック

【OK】をクリックする

【OK】をクリック

作成したエントリーを選択し【OK】をクリックする

【OK】をクリック

サーバーにログイン出来た事を確認する

Last login: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[test ~]$ 

パスワード、「root」ログイン禁止

パスワードによるログイン、及び「root」ユーザーでのログインを禁止するように「sshd」の設定を変更する。

※この設定は鍵認証で接続出来る事を確認した後に行う事。
最悪、サーバーへログイン出来なくなる恐れがあるので注意する。

※「root」ユーザーにて作業

「sshd_config」の「PasswordAuthentication」、「PermitRootLogin」を「yes」から「no」に変更し保存する。

[test ~]$ su -
Password:
[root ~]$ vi /etc/ssh/sshd_config
#PermitRootLogin yes
※コメントを外し「yes」から「no」に変更
PasswordAuthentication no
※「yes」から「no」に変更
[root ~]$

「sshd_config」の構文チェックを行い、問題なければ設定を反映させる為「sshd」を再起動する。

[root ~]$ sshd -t
[root ~]$ systemctl restart sshd
[root ~]$

シェアする

  • このエントリーをはてなブックマークに追加

フォローする