公開鍵認証とパスワードログインの禁止

現在は、パスワードを入力すれば作成したユーザーでもrootでもログインできてしまう状況です。

セキュリティを高めるため

  • rootではそもそもログインできない
  • 作成したユーザーは公開鍵認証を利用しないとログインできない

という2つの設定を行い、セキュリティを高めます。

rootログインを禁止する

sshd_configと呼ばれる、sshでのアクセス設定のファイルを編集して、rootログインを禁止します。

まず、sshを利用して作成したユーザーでログインし、 あらかじめ、現在のsshd_configファイルをコピーしておきます。

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.old

バックアップが確保できたので、vimを利用してsshd_configを編集します。

sudo vim /etc/ssh/sshd_config

として、sshd_configファイルを編集しましょう。

ファイルの中ほどに

PermitRootLogin yes

と書かれた部分があるので、

PermitRootLogin no

に書き換えることでssh経由でのrootログインが禁止されます。

さらに、設定を反映させるため、sshを再起動しておきましょう。

sudo systemctl restart sshd.service

でsshdのサービスを再起動させることが可能です。

ここまで完了したら、exitしてsshでrootログインしてみましょう。パスワードの入力後に正しいパスワードにもかかわらず弾かれていれば成功です。

作成したユーザーの公開鍵認証を設定する

続いて、作成したユーザーについて、公開鍵認証でアクセスする設定に変更します。

鍵ペアの生成

まずは、ローカルのユーザーディレクトリにssh用の隠しフォルダを作成しましょう。

mkdir ~/.ssh

さらに、このディレクトリに移動します。

cd ~/.ssh

次に鍵のペアを作成します。

ssh-keygen -t rsa -b 2048

するといくつか質問があるので回答しましょう。

Enter file in which to save the key: [鍵の名前]
Enter passphrase: [鍵のパスワードを設定]
Enter same passphrase again: [上と同じ内容を入力]]

これで公開鍵と秘密鍵の鍵ペアが作成されます。 lsで

  • [鍵名]
  • [鍵名].pub

という2つのファイルが作成されていることを確認しましょう。pubがついているものが公開鍵、ついていないものが秘密鍵となります。

chmod 600 [鍵名]

として、オーナーのみ読み書き可能に設定しておきましょう。

VPS側に公開鍵を設置

続いて、VPS側に今回作成した鍵ペアのうち、公開鍵を設置します。もう一つ別のターミナルを開いてsshで接続し、

cd ~
mkdir .ssh
chmod 700 .ssh
cd .ssh

と、ホームディレクトリに.sshディレクトリを作成し、cdコマンドで移動しましょう。

そして

vim authorized_keys

として認証される公開鍵リストのファイルを作成し、元のターミナルで

cat [鍵名].pub

で表示される公開鍵の内容を貼り付けて保存しておきましょう。

その上で、

chmod 600 authorized_keys

とパーミッションを設定すれば完了です。

sshd_configの書き換え

sshd_configを書き換えて、公開鍵認証を許可し、パスワードログインを禁止します。

sudo vim /etc/ssh/sshd_config

公開鍵認証を許可(コメントアウトを外す)

PubkeyAuthentication yes

パスワードでのログインを禁止

PasswordAuthentication no

最後に

sudo systemctl restart sshd.service

上記を実行して、sshを再起動して設定を反映させましょう。 このまま、VPSに接続しているターミナルは開きっぱなしにしておきましょう。設定ミスで接続がうまくいかない場合に、修正することができます。誤ってターミナルを閉じてしまった場合には、sshでは接続できないためconohaのコントロールパネルから設定変更を行うことになります。

sshでの公開鍵認証をテスト

では、別ターミナルを開いて、sshで公開鍵認証をしてみましょう。

cd ~/.ssh

で移動し、

vim config

として接続設定を作成します。

Host [任意の接続先名(conoha_wordpressなど)]
  HostName [VPSのIPアドレス]
  User [作成したユーザー名]
  Port 22
  IdentityFile ~/.ssh/[鍵名]

インデントはスペース2つで行いましょう。 接続設定を保存したら、

ssh [設定した接続先名]

で接続できるようになります。設定した鍵ペアのパスフレーズを尋ねられますので、入力するとVPSにログインすることができます。

results matching ""

    No results matching ""