- さくらVPS設定その1:Debian 9をインストールしてからsudo、root、SSHを設定するまで.md
- さくらVPS設定その2:PostgreSQLの導入.md
- さくらVPS設定その3:Nginxの導入.md
- コマンドライン操作ができる
- vi操作ができる
- SSHの原理が理解できている(秘密鍵、公開鍵、共通鍵など)
本文のコマンドについて、[]
で閉じている単語は任意の英単語(またはアルファベットの文字列)に変換して作業をしてください。
例: [username] → Comander
- サーバー一覧を開く
- 名前設定
- VNC コンソールキー配列が
ja
であることを確認
以降、さくらVPSへのDebian 9のインストールは、VPS カスタムOSインストールガイド - Debian 8 / 9 - さくらのサポート情報を参考に作業。
$ apt update
$ apt install sudo
$ sudo -V
$ apt install vim
$ vim -v
- グループ作成
$ groupadd wheel
$ groups [username]
$ gpasswd -a [username] wheel
$ id [username]
- 検証用ユーザー panpi 作成。グループは ippan に所属
$ sudo useradd panpi
$ sudo id
$ sudo passwd panpi
$ sudo groupadd ippan
$ groups panpi
$ gpasswd -a panpi ippan
$ id panpi
- wheel グループが sudo コマンドを実行できるように
$ visudo # /etc/sudoers.tmp
# "%sudo ALL=(ALL:ALL) ALL"の下に記入
# ※もし、グループ指定で効かなかったら、ユーザー指定([Linuxユーザー] ALL=(ALL) ALL)で代用
%wheel ALL=(ALL) NOPASSWD: ALL
#書式チェック
$ visudo -c
# wheelグループ以外のユーザーに切り替えてから"sudo"が実行できないことを確認※例ではvisudo
$ panpi
$ sudo visudo
- root への切り替えができるユーザーを制限する
$ sudo vi /etc/pam.d/su
# "auth required pam_wheel.so deny group=nosu"の下に記入
auth required pam_wheel.so use_uid
# wheelグループ以外のユーザーに切り替えてから"su -"できないことを確認
$ panpi
$ su -
su: Permission denied
- root への切り替えをパスワードなしで行う
$ sudo vi /etc/pam.d/su
# "# auth sufficient pam_wheel.so trust"の下に記入
auth sufficient pam_wheel.so trust use_uid
# パスワードなしでrootに切り替えられることを確認
$ su -
- root で SSH 接続できないようにする
$ sudo vi /etc/ssh/sshd_config
# "#PermitRootLogin prohibit-password"の下に記入
PermitRootLogin no
# 設定変更後、再起動
$ sudo service sshd restart
- ポート変更
- SSH で使用するエフェメラルポート(49152 ~ 65535)を決めるため、乱数作成
- Google で「乱数生成」と検索して、乱数作成
- SSH で使用するエフェメラルポート(49152 ~ 65535)を決めるため、乱数作成
$ sudo vi /etc/ssh/sshd_config
# "#Port 22"を変更
Port [ポート番号]
# サービス再起動
$ sudo service sshd restart
- sshのキー作成
$ mkdir ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -f [指定したいファイル名] -t rsa -b 4096
# パスワード2回入力
# 指定したファイル名でファイルが2つ作成されているか確認(.pub付きとなしが1つずつ)
$ ls
[指定したいファイル名] [指定したいファイル名].pub
- キーをクライアントに登録
$ ssh-add -K ~/.ssh/[指定したいファイル名]
- ディレクトリ作成
mkdir ~/.ssh
# パーミッション設定
# ※chmodのあとの700は、所有者のみに全ての権限があるという意味
# 参考: https://qiita.com/shisama/items/5f4c4fa768642aad9e06
$ chmod 700 ~/.ssh
# "~/.ssh"のパーミッション設定が700(drwx------)になっているか確認
$ ls -a -l ../
$ touch authorized_keys
$ chmod 600 authorized_keys
# "~/.ssh/authorized_keys"のパーミッション設定が600(-rw-------)になっているか確認
$ ls -a -l
- パスワード認証の一時有効化
$ sudo vi /etc/ssh/sshd_config
PasswordAuthentication yes
- クライアントからサーバーにキー送信
$ ssh-copy-id -i ~/.ssh/client_rsa_20190413.pub [Linuxユーザー]@[サーバーのIPアドレス] -p [ポート番号]
# 下記ログが表示され、キーが追加されたことを確認
Number of key(s) added: 1
- パスワード認証無効化
$ sudo vi /etc/ssh/sshd_config
# 下記設定に変更
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
- ssh再起動
sudo /etc/init.d/ssh restart
- SSH接続の確認
$ ssh -i ~/.ssh/client_rsa [Linuxユーザー]@[サーバーのIPアドレス] -p [ポート番号]