VPSサーバーを初めて利用する際に最初にしたほうがいいこと書いてみました。
WebArenaのCentOS7.4のVPSサーバーとMacのターミナルを利用。
① 作業用ユーザーを作成して、rootログインを禁止する
デフォルトではrootログインしかできない状態ですが、rootログインできる状態という事は、もし誰かにrootログインされてしまうと、なんでもできてしまう非常に危険な状態なので これを禁止します。
まずRPMパッケージを最新に更新しておきましょう
sudo yum -y update
VPSにMACターミナルからSSHで接続してください(デフォルトではroot)
sudo ssh root@IPアドレス -i ./.ssh/デフォルトのroot用sshキー.pem
1. ユーザー作成 (ユーザー名hogeは自由に置き換えてください)
# useradd -G wheel hoge
※グループ名のwheelはsudoコマンドが使える管理者グループ名として使われる
2. 作成したユーザーにパスワードを設定する
# passwd hoge
→エンター後にパスワードを求められるので、そこで入力する
nanoエディタのインストール(デフォルトでvi入っているので、好きなエディタ使ってください)
# yum install nano
3. 作業用ユーザーにsudo権限を付与
# nano /etc/sudoers (もしくは sudo visudo )
設定ファイル中で下記がコメント(#)されていた場合はコメントを外して保存
%wheel ALL=(ALL) ALL
4. SSHの設定ファイル確認・変更
# nano /etc/ssh/sshd_config
下記2箇所がコメント(#)されていた場合はコメントを外して保存
PubkeyAuthentication yes
AuthorizedkeysFile .ssh/authorized_keys
念のため
PasswordAuthentication no
になっているかも確認
RSSAuthentication no
を設定する必要は2016年のopenSSH7.4から必要なくなりました。
5. sshdをリロードする
(CentOS7からはserviceコマンではなくsystemctlコマンドを使います)
# systemctl reload sshd
アクセス元(自分以外のIP1アドレスからのアクセス)を制限したい場合には下記に設定する
# nano /etc/hosts.allow
→sshd: IPアドレス
を追記する
6. 作業用ユーザー(hoge)の公開鍵保存ディレクトリ作成
(ユーザー名hogeは自由に置き換えてください)
# sudo -u hoge mkdir /home/hoge/.ssh
Macでキーペア作成するので一時SSH終了する
# exit
7. 作業用ユーザーSSH用のキーペアをMacで作成
ssh-keygen -t rsa -b 4096 -f id_rsa_filename
(filenameは他のキーと混同しないよう自由に変えてください、id_rsaだけでもOK)
パスフレーズを設定
8. キーペアがホームに作成されるのでsshを管理している.sshフォルダに移動させる
mv id_rsa_filename ~/.ssh
mv id_rsa_filename.pub ~/.ssh
9. キーペアのうち公開鍵であるid_rsa_filename.pubファイルをVPSサーバーにSCP(rootの鍵認証を使ってリモートにコピーする)
sudo scp -i ~/.ssh/デフォルトのroot用sshキー.pem ~/.ssh/id_rsa_filename.pub root@IPアドレス:/home/hoge/.ssh/
10. アップロードした公開鍵の名前、所有者・グループ、パーミッション変更
VPSサーバーとssh接続してから下記を実行
# cd /home/hoge/.ssh/
# mv id_rsa_filename.pub authorized_keys
# chown hoge:hoge authorized_keys
# chmod 600 authorized_keys
# chmod 700 /home/hoge/.ssh
# exit
11. Macから作業用ユーザーでSSH
sudo ssh hoge@IPアドレス -i ./.ssh/id_rsa_filename
パスワードいれて接続できれば成功
12. root接続(rootログイン)を禁止する
# sudo nano /etc/ssh/sshd_config
PermitRootLogin without-password
↓
PermitRootLogin no
というように
"without-password → no"
に変更して、保存。
13. sshdリロードする
# systemctl reload sshd
これで最初できていた、rootログインを試して拒否されれば成功