【KUSANAGI】鍵認証を有効にしてパスワードとRootのログインを禁止する設定

サーバーセキュリティの基礎中の基礎、「鍵認証の有効化」と「パスワードログイン、Rootログインを禁止」する手順を解説します。

秘密鍵のダウンロード

秘密鍵ファイル「kusanagi.pem」はKUSANAGIの初期設定で必ず作成され、/rootディレクトリに保存される。

ローカルにダウンロードするので、サーバーにはログインしていないターミナルでコマンドを実行する。

$ scp root@IPアドレス:/root/kusanagi.pem /Users/ログインユーザー名/Desktop

これはPCのデスクトップにダウンロードする場合の例。

秘密鍵がダウンロードできたら適宜コピーを作成してバックアップをとり、サーバーにログインして/root上の秘密鍵ファイルを削除する。

# cd /root

# rm kusanagi.pem

rm: 通常ファイル `kusanagi.pem' を削除しますか? yes
 

鍵認証を許可する

次にSSHデーモンを設定していく。

サーバーにRootでログインしviエディタで設定ファイルを開く。

# vim /etc/ssh/sshd_config

20行目くらいにある「Protocol 2」のコメントアウトを外してSSH2をオンにする。

#編集前
#Protocol 2

#編集後
Protocol 2

55行目付近にある「PubkeyAuthentication yes」のコメントアウトを外し鍵認証を可能にする。

#編集前
#PubkeyAuthentication yes

#編集後
PubkeyAuthentication yes

保存して一度エディタを終了し、デーモンを再起動。

# systemctl restart sshd.service

実際に鍵認証ができるかを試してみる。

WindowsのTeratermなどを利用している場合、接続時に秘密鍵ファイル「kusanagi.pem」を選択するだけで鍵認証によるSSH接続ができる。

パスワードを入力せずにサーバーにログインできれば成功※。

Macのターミナルを利用している場合、秘密鍵を /.sshディレクトリに設置する必要がある。

秘密鍵を /.sshディレクトリに移動(Macのみ)

kusanagi.pemがデスクトップにあると仮定してすすめる。

当たり前だがこの作業はサーバーにログインしていないターミナルで行う。

デスクトップに移動。

$ cd /Users/ログインユーザー名/Desktop

秘密鍵ファイルを/.sshディレクトリに移す。

$ mv kusanagi.pem ~/.ssh

/.sshディレクトリへ移動し、秘密鍵ファイルの権限を設定する。

#ディレクトリを移動
$ cd ~/.ssh

#パーミッションを600に
$ chmod 600 kusanagi.pem

#確認
$ ls -l
-rw-------   kusanagi.pem

実際に鍵認証でログインできるかを確認する。

$ ssh -i ~/.ssh/kusanagi.pem kusanagi@IPアドレス

パスワードなしでサーバーにログインできれば成功※。

パスワードログインとRootログインを禁止する

鍵認証でログインできることを確認したら、パスワードログインの禁止およびRootログインを禁止する。

まずkusanagiユーザーがRootになれるかどうかを一応確認しておく。

$ su -

パスワード:rootのパスワードを入力

再びSSHデーモンを編集する。

# vim /etc/ssh/sshd_config

49行目あたりにある「PermitRootLogin yes」を書き換える。

#編集前
PermitRootLogin yes

#編集後
PermitRootLogin no

80行目あたりにある「PasswordAuthentication yes」を書き換える(なぜか2行ある場合があるので、一応2つとも同じように書き換えておく)。

#編集前
PasswordAuthentication yes

#編集後
PasswordAuthentication no

保存してエディタを終了し、デーモンを再起動する。

# systemctl restart sshd.service

最終確認として

以上3点をチェックする。


$ ssh root@IPアドレス

#Rootでログインできない
root@IPアドレス: Permission denied 

$ ssh kusanagi@IPアドレス

#パスワードでログインできない
kusanagi@IPアドレス: Permission denied

#鍵認証ならログインできる
$ ssh -i ~/.ssh/kusanagi.pem kusanagi@IPアドレス

シェアする