root権限だけでサーバー・WEBサイトを管理するのは避けたいので、新規ユーザーを作成する。
サンプルとして「test」ユーザーを追加する手順を記録している。
新規ユーザーの作成
「test」ユーザーを追加する。
useradd test
「/home」には新たに「test」ディレクトリが作成される。
新規ユーザーのパスワードを設定する(パスワード認証)
作成済みの「test」ユーザーにパスワードを設定する。コマンド後にパスワードを入力する。
passwd test
ここで作成したパスワードは、ssh接続でのパスワード認証になる。
パスワード認証は公開鍵を登録するときに必要になるので、ここで設定したパスワードは忘れないようにする。
「/etc/ssh/sshd_config」に「PasswordAuthentication no」が設定されていないかどうかを確認する。
「PasswordAuthentication no」になっていたら、一時的にでもいいので「PasswordAuthentication yes」に変更する。
パスワード認証は許可しない方がセキュリティが向上するので、新規ユーザーの作成と設定が終わったあとに「PasswordAuthentication no」を設定した方がよい。
ユーザのルートディレクトリの権限設定を見直す
「/home/test」は所有者・グループともに「test」で、パーミッションは755に設定する。
権限設定はサーバー仕様によりけりなので適宜調整すること。※ただし777はセキュリティ上やめた方がいい。
新規ユーザーのssh接続設定
rootユーザーでログインした状態から、「test」ユーザーに切り替える。
su test
コマンド入力画面での左側の表示が「[test@<ホスト名> <パス>]$」とのよう表示されたら、「test」ユーザーへの切り替えが完了。
rootユーザーに戻るときは1度だけexitを入力する。
※2回exitしたらサーバーからもログアウトしてしまうので注意する。
exit
「.ssh」ディレクトリを作成する
「test」ユーザーに切り替えた状態で、「/home/test」に「.ssh」ディレクトリを作成する。
mkdir /home/test/.ssh
「.ssh」ディレクトリのパーミッションを700に変更する。
chmod 700 /home/test/.ssh
「.ssh」ディレクトリのパーミッションを確認する。
ls -l -d /home/test/.ssh
上記lsコマンドで以下のように表示されたら、「.ssh」ディレクトリのパーミッションの変更は完了である。
drwx------ <ハードリンク数> test test <ファイルサイズ> <タイムスタンプ> /home/test/.ssh
「authorized_keys」を作成する
作成した「.ssh」ディレクトリに「authorized_keys」ファイルを作成する。
touch /home/test/.ssh/authorized_keys
「authorized_keys」ファイルのパーミッションを600に変更する。
chmod 600 /home/test/.ssh/authorized_keys
「authorized_keys」ファイルのパーミッションを確認する。
ls -l -d /home/test/.ssh/authorized_keys
上記lsコマンドで以下のように表示されたら、「authorized_keys」ファイルのパーミッションの変更は完了である。
-rw------- <ハードリンク数> test test <ファイルサイズ> <タイムスタンプ> /home/test/.ssh/authorized_keys
いちばんめのサーバー構築の流れ
-
1-1 初期設定
-
1-2 新規ユーザー(一般ユーザー)の作成と設定
-
1-3 Nginx導入とhttpの準備
-
1-4 Nginxの初期設定
-
1-5 php導入
-
1-6 Apache導入と初期設定
-
1-7 リバースプロキシを準備する前の事前知識
-
1-8 サーバーIPアドレスとドメイン(ワイルドカード指定)の設定
-
1-9 ドメイン個別設定とリバースプロキシ構築
-
1-10 Let’s Encrypt(Certbot)を使ったSSL/TLS証明書の発行と自動更新設定
-
1-11 MySQL導入
-
1-12 MySQLのパフォーマンスチューニング
-
1-13 MySQLへのログインと初期設定
-
1-14 MySQLからDB・ユーザーの準備/ユーザーの権限設定
-
1-15 Zabbix導入
-
1-16 (寄り道)Zabbixのアップグレード