前回の記事ではVPS(仮想専用サーバー)のレンタルとSSHキー設定の手順についてまとめた。
本記事では前回に引き続き、Windows11環境からVPS管理画面を使ったセキュリティ設定についての手順をまとめる。
目次
- 二段階認証の設定
- パッケージの更新
- SSH接続用アカウント作成
- 作成したアカウントにSSHキーを取り付ける
- 作成したアカウントに管理者権限を付与
- SSH接続でのrootのログインを禁止する
- パケットフィルター設定
【第3回】Windows11のコマンドプロンプトでSSH接続(準備中)
二段階認証の設定
VPS管理画面で二段階認証を設定する。
シンVPSではレンタルに使う「シンアカウント」とVPSごとの管理画面それぞれに二段階認証を設定可能。
パッケージの更新
サーバーにあらかじめインストールされている最低限のソフトウェアのセット(パッケージ)を最新のバージョンに更新する。
VPS管理画面のコンソールでログイン
VPS管理画面のVPSパネルにある「コンソール」をクリック。

ウィンドウの右上にある「Send CtrlAltDel」を押すとサーバーが再起動するので、フォーカスしないように注意。
レンタル時に設定したrootアカウントのパスワードでログインする。

パスワードの入力を求められる場面では、入力した文字が非表示になっている。
入力ができないと勘違いしないように注意。
パッケージの更新コマンドを実行
以下の順番でコマンドを入力する。
apt update # パッケージリストの更新
apt upgrade -y # インストール済みパッケージを更新
SSH接続用アカウント作成
管理画面のコンソールではコピー&ペーストやファイルのアップロードとダウンロードができないため、SSH接続できるように設定していく。
まずはSSH接続用アカウントを作成し、アクセス権限が強い「root」にはSSH接続でログインできないように設定する。
SSHキー作成
新たなアカウントを作る前に、SSHキーを作成する。
シンVPSのアカウントメニューには「SSH Key」という項目があり、画面右上の「SSH Keyの登録」から新たな鍵を自動作成することができるため、筆者の環境ではこれを利用した。

この秘密鍵も、前回の記事で紹介した「ディレクトリとアクセス許可」の条件を整えておく。
アカウント作成
コンソールにrootログインした状態で、adduser アカウント名を入力する。
例えば、アカウント名「hogehoge」を作成する場合は以下のように入力する。
adduser hogehoge
新しいアカウントの設定を問われるので、それぞれについて入力する。
新しいアカウントのパスワード設定
任意のパスワードを設定。
名前や連絡先の入力
空白のままでよいのでENTERキーを押して確定する。
作成したアカウントにSSHキーを取り付ける
新しいアカウントが作成できたら、ログイン用の錠前(公開鍵)を取り付ける。
テキストエディタ「nano」で公開鍵ファイルを開く
コンソールに以下の内容を入力する。
cd /home/アカウント名 # ディレクトリ移動
mkdir -p .ssh # ディレクトリを作成
nano .ssh/authorized_keys # テキストエディタで開く
例えば、新しく作成したアカウント名が「hogehoge」なら以下のように入力する。
cd /home/hogehoge
mkdir -p .ssh
nano .ssh/authorized_keys
「authorized_keys」というファイルは存在しないが、テキストエディタで開くことができ、内容を入力して保存すると作成される。
公開鍵のテキストを入力して保存
コンソール上で編集できる状態になるので、あらかじめ作成しておいたSSHキーの公開鍵テキストを全て入力する。
シンVPSではアカウントメニューの「SSH Key」から公開鍵を表示させることができる。
コピー&ペーストはできないので入力ミスに注意。
入力できたら、テキストエディタを閉じるため、「^X」コマンドを入力する。
「^」は「Ctrlキー」入力のことなので、「Ctrlキーを押しながらXキー押下」 で閉じることができる。
Xは大文字で表記されているが、Shift入力は不要。
その後変更を保存するかどうかを問われるので、「Yキー」を押すと「.ssh/authorized_keys」が作成、保存される。
「.ssh/authorized_keys」のアクセス権限を設定
以下のコマンドでフォルダの所有者やアクセス権限を設定する。
# .sshフォルダとその中身の所有者を作成したアカウントに変更
chown -R アカウント名:アカウント名 /home/アカウント名/.ssh
# 所有者だけに読み書き実行の権限を付与
chmod 700 /home/アカウント名/.ssh
# 所有者だけに読み書きの権限を付与
chmod 600 /home/アカウント名/.ssh/authorized_keys
例えば、新しく作成したアカウント名が「hogehoge」なら以下のように入力する。
chown -R hogehoge:hogehoge /home/hogehoge/.ssh
chmod 700 /home/hogehoge/.ssh
chmod 600 /home/hogehoge/.ssh/authorized_keys
作成したアカウントに管理者権限を付与
gpasswd -a アカウント名 sudoのコマンドで新しいアカウントに管理者権限を付与する。
例えば、新しく作成したアカウント名が「hogehoge」なら以下のように入力する。
gpasswd -a hogehoge sudo
SSH接続でのrootのログインを禁止する
「root」のパスワード自体をロックする方法を紹介している記事もあるが、この方法だと管理画面のコンソールからも「root」にログインできなくなり、緊急時の復旧手段がなくなってしまうので、本記事では扱わない。
SSHの設定ファイルを書き換える
SSHの設定ファイル「/etc/ssh/sshd_config」を書き換えて、SSH接続でrootにログインできないように設定する。
まず、「/etc/ssh/sshd_config」をテキストエディタ「nano」で開くコマンドを入力する。
nano /etc/ssh/sshd_config
レンタルするVPSによって「/etc/ssh/sshd_config」の内容は異なっており、以下に示す筆者の環境とは必ずしも一致しない。
ログインに関わるファイルなので、自分の環境と照らして編集は慎重に。
#でコメントアウトされている行が多く見づらいが、筆者の環境においてコメントアウトされていなかった行は以下。
Include /etc/ssh/sshd_config.d/*.conf
PermitRootLogin prohibit-password
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
「root」でSSH接続できない設定にするには、PermitRootLoginから始まる行を、PermitRootLogin noに変更し、保存する。
筆者の環境では、この行はデフォルトでPermitRootLogin prohibit-passwordだった。
補足
調べたところによると、環境によっては、
-
Include /etc/ssh/sshd_config.d/*.confで別のファイルがインクルードされており、その中で設定されている -
ChallengeResponseAuthenticationがyesとなっており、noに変更が必要
ということもある様子。
筆者が実際に試したわけではないため、設定が上手くいかなかったときの足掛かり的な情報になればと。
設定項目について参考にしたい記事
SSHを再起動して設定を反映
最後に、以下のコマンドで先ほど編集したSSH接続の設定を反映させる。
systemctl restart ssh
ここまでできたら、exitコマンドでログアウトしてコンソールを閉じる。
パケットフィルター設定
シンVPSではパケットフィルター設定を使ってアクセスを許可するIPアドレスとポートを設定できるので、自分のPCのグローバルIPアドレスだけがVPSとSSH接続できるようにする。
PCのグローバルIPアドレスを調べる
グローバルIPアドレスを確認できるサイト
IPアドレスにはローカルとグローバルがあるが、ここではグローバルIPアドレスを確認する。
パケットフィルター設定を追加
VPS管理画面のパケットフィルター設定で、「パケットフィルター設定を追加する」から以下ように内容を設定。

黒塗り部分には調べたグローバルIPを入力する。
SSH接続はデフォルトでポート番号22となっている。
グローバルIPアドレスは変わることがあるので、アクセスできなくなった場合は再度アドレスを確認して設定しなおすか、許可するアドレスの範囲を広げる。
単一のホストのみを許可する場合は「□.□.□.□/32」の形式を使用し、例えば 123.45.67.89/32 ならその1つだけが対象となる。
一方、□.□.□.0 ~ □.□.□.255(例えば 123.45.67.0 ~ 123.45.67.255)のように範囲を広げて許可する場合は「□.□.□.0/24」と表記する。
※「□」にはIPアドレスの数値(0〜255)が入る。
IPアドレスを全て許可するとブルートフォース攻撃などのセキュリティリスクが高まるので注意。
【第3回】Windows11のコマンドプロンプトでSSH接続につづく(準備中)
