[CentOS]ログイン方法をパスワード認証から公開鍵認証に変更する

centos_logo

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

CentOS のロゴは「Red Hat Inc.」の登録商標です。ロゴは公式ページの利用規約を沿って使用しています。

VPS やオンプレミス環境などのサーバーを構築したとき、CentOS では初期のログイン方法としてパスワード形式が設定されています。

セキュリティ上、パスワードによるログインを許容すると不正ログインをされる可能性が高くなるため、あまりおすすめできません。そこで今回は SSH ログイン方法について、パスワード認証から公開鍵認証に変更する手順をまとめていきます。

Linux サーバーにて SSH の公開鍵認証を設定する手順

公開鍵認証を設定する手順は、大きく分けると下記のようになります。

  • 公開鍵と秘密鍵を作成する
  • サーバーに公開鍵の設定する
  • sshd_config ファイルにて公開鍵認証を許容する
  • sshd_config ファイルにてパスワードによるログインを禁止する

では順番に作業手順を確認していきましょう。

 

ログイン用の公開鍵と秘密鍵を作成する方法

公開鍵と秘密鍵を作成するコマンド

ssh-keygen -t rsa

ログイン用の公開鍵と秘密鍵は、「ssh-keygen」コマンドで作成します。

公開鍵と証明書が作成される場所は、root ユーザーと一般ユーザーで異なります。rootユーザーは「/root」フォルダ直下にファイルが生成され、一般ユーザーは「/home/(ユーザー名)」フォルダに作成されます。

root ユーザーの公開鍵と証明書が作成される場所(パス)

証明書 作成されるパス
秘密鍵 /root/.ssh/id_rsa
公開鍵 /root/.ssh/id_rsa.pub

一般ユーザーの公開鍵と証明書が作成される場所(パス)

証明書 作成されるパス
秘密鍵 /home/(ユーザー名)/.ssh/id_rsa
公開鍵 /home/(ユーザー名)/.ssh/id_rsa.pub

 

公開鍵と秘密鍵を作成した実行サンプル

今回は root ユーザーの公開鍵と秘密鍵した際の実行履歴を載せています。

[root@localhost]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:qH2b4yFU5y+FDD7LaM++WYWVr1BnfLZ1MNa6ZxszS3k hoge@example
The key's randomart image is:
+---[RSA 2048]----+
|   .          . .|
|o o          .   |
|  .+.      . o =.|
|  B* o   o o . . |
|  S  o o    ++.O.|
|     + o   o++o *|
| *E . = o oo  o  |
|o .    + o. . o.*|
|   .o   .   .o oo|
+----[SHA256]-----+

 

作成した公開鍵をサーバーに設定する方法

ログインしたいユーザーのカレントディレクトリ以下、「.ssh/authorized_keys」に公開鍵を設定します。なお authorized_keys ファイルには、改行区切りで複数の公開鍵を設定することができます。

公開鍵の設置先

ユーザー 公開鍵の設置先パス
root ユーザー /root/.ssh/authorized_keys
一般ユーザー /home/(ユーザー名)/.ssh/authorized_keys

今回は作成した公開鍵である id_rsa.pub ファイルを authorized_keys ファイルとしてコピーして使用します。

[root@localhost]# chmod 700 .ssh
[root@localhost]# cd .ssh
[root@localhost .ssh]# cp id_rsa.pub authorized_keys
[root@localhost .ssh]# chmod 600 authorized_keys
[root@localhost .ssh]# ls -la
total 20
drwx------  2 root root 4096 Apr  6 10:21 .
dr-xr-x---. 5 root root 4096 Apr  6 10:36 ..
-rw-------  1 root root  396 Apr  6 10:21 authorized_keys
-rw-r--r--  1 root root  396 Apr  6 10:15 id_rsa
-rw-r--r--  1 root root  396 Apr  6 10:15 id_rsa.pub

 

sshd_config ファイルにて公開鍵認証を許容する

次にサーバーへのログイン方法をパスワード形式から公開鍵認証に変更します。CentOS では SSH に関係する設定は「/etc/ssh/sshd_config」に全て記述されています。

パスワード形式から公開鍵認証に変更する方法

PubkeyAuthentication yes

ログイン方法をパスワード形式から公開鍵認証に変更したい場合は、「PubkeyAuthentication yes」に変更します。なおコメントアウトされているときはコメントアウトを外して有効化してください。

公開鍵認証を許容する実行サンプル

vi /etc/ssh/sshd_config

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

(省略)

# Authentication:

(省略)

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile     .ssh/authorized_keys
#AuthorizedKeysCommand none
#AuthorizedKeysCommandRunAs nobody

(省略)

 

パスワードによるログインを禁止(無効化)する

PasswordAuthentication no

パスワードの無効化も「/etc/ssh/sshd_config」にある PasswordAuthentication 項目を「no」に設定することが実現することができます。

 

sshd_config の文法チェック

/usr/sbin/sshd -t

SSH の設定ファイルである shd_config の文法チェックは「/usr/sbin/sshd -t」で行うことができます。sshd の設定変更を行った際は reload や restart を実行する前に必ず文法チェックを行うことをおすすめします。文法が間違った状態で再実行すると最悪、サーバーに全くログインできなくなる可能性があります。

もし sshd のパスが無いというエラーが出た場合は、「which sshd」でご自身の sshd の設置場所を確認した上でコマンドを実行してください。

 

sshd_config の設定反映

最後に sshd をリロードして設定を反映して、設定終了です。

[root@localhost]# systemctl reload sshd
Reloading sshd:                                            [  OK  ]

 

 

Linuxの知識については下記の本も参考になるので、スキルアップにお役立てください。

created by Rinker
三宅 英明 (著)、大角 祐介 (著)
ページ数: 440ページ
出版社:SBクリエイティブ
発売日:2015/06/06

出典:amazon