この度、サーバーの勉強目的でConoHa VPSを契約しました。つきましては、せっかくなので簡単なネットワーク対戦型ゲームを配信してみようということでその方法や困ったことなどをブログ記事で紹介していこうと思います。
本記事ではSSH接続を中心とした初期設定の方法の解説までですが、初心者向けに誰でもできるように丁寧に解説していますので、ぜひ最後までご覧になってください。
本記事では、Linux系OSのディストリビューションの1つである「Ubuntu」のバージョン24.04で解説しています。OSおよびバージョンが異なる場合は操作等が異なる部分があるかもしれませんので、あらかじめご承知おきください。
また、設定ややり方については筆者が行った方法を解説していますが、実際にはこれ以外にも様々な方法があることにご留意ください。

契約方法についてはコチラ
契約方法や金額などはいろいろ変わると思うので公式サイトのサポートページを直接ご確認ください。
目標はSSHでリモート接続
SSH(Secure Shell)はインターネット上のサーバーに安全に接続するために以下のセキュリティ要件を備えた通信プロトコルです。
・「サーバーが本物であるか」(真正性)
・「クライアントが本物であるか」(真正性)
・「通信内容の暗号化」(機密性)
SSHでリモート接続するまでのステップ
- 管理画面でコンソールを操作する
- 一般ユーザーを作成する
- セキュリティグループを設定する
- SSHを設定する
- rootユーザーでのログインを禁止する
- OpenSSHを再起動する
- 公開鍵(パブリックキー)認証方式でSSH接続を試す
管理画面でコンソールを操作する
ConoHa VPSでアクセスできるコンソールは、「VNCコンソール」と「シリアルコンソール」の2種類です。
異なる機能 | VNCコンソール | シリアルコンソール |
---|---|---|
対応OS | すべてのOSで利用可能 | 一部OSは非対応? |
コピー&ペースト | ブラウザVNCビューアのためコピペ非対応 | クリップボードから貼り付け可能 |
VNCコンソールは便利ですが、私の環境だとマウスカーソルがうまくフォーカスされず使いづらいので、シリアルコンソールで解説します。
![ConoHa VPS管理画面[コンソール]-[シリアル]](https://webmanual.doc778.com/wp-content/uploads/2025/05/image.png)
- まず「root」と入力
- 次に初期設定したパスワードを入力

rootユーザーとはすべての権限を持つユーザーのことで、WindowsにおけるAdministratorのことです。
通常の「Ubuntu」(読:ウブントゥ)ではデフォルトでrootユーザーは使えない状態になっていますが、ConoHa VPSの場合は、rootユーザーは初期設定するために必要なので、契約時にrootパスワードを必ず設定します。(以下の画面参照)

apt update
apt upgrade
一般ユーザーを作成する
adduser [ユーザー名]
- パスワードの入力を2回求められます(表示されませんが入力されています)。
- ユーザー情報(名前や電話番号)は空Enterでスキップ可能です。
- 最後に「この情報で登録してよいか?」と聞かれるので「y」を入力します。
passwd [ユーザー名]
このコマンドを入力すると以下のようなステップでパスワードを設定します。
New password: [任意のパスワードを入力]
Retype new password: [↑で入力したパスワードを再度入力]
gpasswd -a [ユーザー名] sudo
指定したユーザーをsudoグループに追加するコマンドです。
sudoの語源はsuperuser doで「スードゥ」と読むようです。
一般ユーザーでログインしているときにrootと同じ権限でコマンドを実行するために使用します。
使用する際はログイン中のユーザーのパスワード入力が求められます。
cat /etc/passwd | grep [ユーザー名]
ちょっと難しいのでコマンドを意訳すると「etcディレクトリ内のpasswdファイルを[ユーザー名]で検索して(grep)該当する行を表示(cat)せよ」という感じの意味です。
このコマンドを実行して以下のように表示されれば正しく作成されています。
[ユーザー名]:x:1000:1000:,,,:/home/[ユーザー名]:/bin/bash
su - [ユーザー名]
「su」はsubstitute user または switch user の略です。つまりユーザーを入れ替えるコマンドです。
sudo apt update
一般ユーザーでログインしているため、sudoを使います。
すると、パスワードを求められるので、一般ユーザー用に設定したパスワードを入力し、アップデートが始まれば一般ユーザーの設定はひとまず完了です。
一般ユーザー作成について参考にした公式ガイド
セキュリティグループを設定する
セキュリティの設定はdefaultのままでは「同一アカウントで作成されたVPS以外の通信はすべて遮断する」設定のようです。
つまり、この後設定するSSH(外部からVPSにアクセスするための設定です)についても遮断されてしまうということなので、あらかじめ設定を変更しておく必要があります。

defaultのままでは「同一アカウントで作成されたVPS以外の通信はすべて遮断する」設定になっていると画面に書かれていますが、実際にdefaultの設定を見てみると、下記のようになっています。
一見するとすべて許可のように見えますが、ホワイトリスト(通信許可制)方式に対して「ポート範囲」と「IP/CIDR」が設定されていないということなので、通信はすべて遮断されるという意味なのだろうと思います。

セキュリティグループの変更方法

今回はSSH接続が目的なので、ひとまず最初から用意されている「IPv4v6-SSH」を使います。
ただし、SSH接続用のデフォルトのポート番号※である「22」はポートスキャンの対象になりやすいため、変更したほうが良いとされています。(自分の場合は変更していますが、本記事では紹介しません。)
あらかじめ予約されている(デフォルト)0~1023番のポート番号はシステムポート (System Ports) やウェルノウンポート (Well Known Ports) 番号などと言います。



![「IPv4v6-SSH」を選んで[保存]の画面](https://webmanual.doc778.com/wp-content/uploads/2025/05/image-11-1024x277.png)
ここでは一時的な設定ですが、最初から様々なセキュリティグループが用意されているため、他のセキュリティグループを眺めておくと自分でカスタマイズするときの参考になるのでおススメです。

SSHを設定する
ここまでの設定で以下のように自分のPCのPower shellやbashなどのターミナルウィンドウからアクセスできるはずなので試します。
- ポート番号が22(デフォルト)の場合
ssh [ユーザー名]@[サーバーIP]
- ポート番号が22以外の場合
ssh [ユーザー名]@[サーバーIP] -p [22から変更している場合はここでポート指定]
このあとパスワードを聞かれるのでユーザー名に対するパスワードを入力すれば接続できます。
この接続方式をパスワード認証といいます。
VPS追加時にコントロールパネルにて公開鍵認証の設定を行っている場合はパスワード認証でのログインが禁止されています。
この方法でも接続できますが、パスワードによる認証だけではブルートフォース攻撃への耐性が弱いのでセキュリティ的に少し心配です。
また、この方法では毎回パスワードを設定しなければならないので面倒です。
そこで一般的にはSSH接続には公開鍵認証方式を使います。
1.公開鍵(パブリックキー)を登録する
![[セキュリティ]-[SSH Key]を選択し、[+追加]画面](https://webmanual.doc778.com/wp-content/uploads/2025/05/image-14-1024x425.png)
![[自動生成]を選び、[保存]画面](https://webmanual.doc778.com/wp-content/uploads/2025/05/image-15.png)
通常は自動生成を選べば問題ありませんが、秘密鍵と公開鍵を自分のPCで作成した場合は[インポート]を使って公開鍵を登録します。この場合は秘密鍵は自分のPCにあるため、秘密鍵をダウンロードする必要がありません。
2.秘密鍵(プライベートキー)をダウンロードする

3.クライアント(あなたのPC)を設定する
①まずダウンロードした秘密鍵を保管する
・開発環境がWindows PCの場合
C:\Users\[ユーザー名]\.ssh
・開発環境がUbuntu PCの場合
[ユーザー名]@xxxxxxx: ~/.ssh
Ubuntu PCの場合は権限(パーミッション)の設定が必要です。
chmod 600 ~/.ssh/[対象のPEMファイル名]
このコマンドはファイルの所有者に読み取りと書き込みの権限を付与しています。
以下のコマンドで念の為権限(パーミッション)を確認できます。
ls -l ~/.ssh
表示形式:-rw------- 1 [ユーザー名] [グループ名] [ファイルサイズ] 3月 24 13:42 [ファイル名]
-rw------- 1 hoge hoge 554 2月 26 18:21 config
-rw------- 1 hoge hoge 1675 5月 05 2025 key-2025-05-05-11-11.pem
このように-rw-------
と表示されればOKです。(パーミッション設定について解説すると長くなるので今回は割愛します)
②configファイルを作る
同フォルダ内にconfigという名前で以下のようにファイルを作ると後々便利です。
Host [識別子(エイリアス)]
HostName [IPアドレスなど正式なホスト名]
User [ユーザー名]
Port [ポート番号]
IdentityFile ~/.ssh/[秘密鍵のファイル名(pem)]
4.サーバー(ConoHa VPS)を設定する
ここからはConoHa VPSのコンソール直接行うか、SSHのパスワード認証で設定します。
mkdir ~/.ssh
chmod 700 ~/.ssh
ls -ld ~/.ssh
表示形式:drwx------ 2 [ユーザー名] [グループ名] [ファイルサイズ] Apr 25 21:38 /home/[ユーザー名]/.ssh
drwx------ 2 hoge hoge 4096 Apr 25 21:38 /home/hoge/.ssh
このようにdrwx------
と表示されればOKです。
echo "[ここにパブリックキーをコピペ]" > ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
sudo cat ~/.ssh/authorized_keys
管理画面の「SSH Key」で取得したパブリックキーが表示されれば

- 「nano」というコンソールで動作するテキストエディタ(「nano」の使い方はコチラが分かりやすいのでリンクします)でsshd_configファイルを編集します。
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no #パスワード認証の禁止
KbdInteractiveAuthentication no #キーボードインタラクティブ認証の禁止
PubkeyAuthentication yes #公開鍵(パブリックキー)認証を有効
先頭に「#」がついていたらそれを消し、yes,noを書き換えることでその設定が有効化されます。
- しかし、Ubuntu 24.04では、もう一つパスワード認証が禁止するための設定箇所があるので確認します。
sudo cat /etc/ssh/sshd_config.d/50-cloud-init.conf
PasswordAuthentication yes #たぶんこのように「yes」になっていると思います。
- こちらの設定のほうが優先上位であり、おそらくここではパスワード認証が有効になったままになっていると思うので、ここも「nano」で書き換えます。
sudo nano /etc/ssh/sshd_config.d/50-cloud-init.conf
「yes」を「no」にするか、先頭に「#」(コメントアウトといいます)を追加すればOKですが、ここでは「#」を追加します。

例えば「30-disable-password-auth.conf」ファイルを作ってsshd_config.dディレクトリに格納しておくことで「50-cloud-init.conf」を変更しなくてもパスワード認証を禁止することができます。
※実際に試してみたところ最初の「50-」とか「30-」とかの数字が若い方の設定が優先されるようです。
sudo nano /etc/ssh/sshd_config.d/30-disable-password-auth.conf
ファイルに以下の内容を記述して保存します。
PasswordAuthentication no
rootログインを禁止する
rootユーザーはすべての権限を持っているので、間違えて致命的な設定変更してしまったり、悪意ある攻撃者に乗っ取られたりすると非常に危険です。
なのでSSH接続でのrootユーザーでのログインは一般的に禁止します。
sudo nano /etc/ssh/sshd_config
PermitRootLogin no #ルートログインの禁止
この部分を探して「yes」を「no」に書き換えることでrootユーザーでのログインが禁止されます。
OpenSSHを再起動する
ここまでサーバーで設定した内容はOpenSSH(サーバーのSSHサービス)を再起動することで反映されます。
再起動する前に次のコマンドでconfigファイルの構文ミスなどをチェックすると良いでしょう。
sudo sshd -t
問題があればエラーが表示されますが、問題がなければ何も表示されないので、安心して下記コマンドで再起動を実行してください。
sudo systemctl restart ssh
公開鍵(パブリックキー)認証方式でSSH接続を試す
ここまでの設定で公開鍵(パブリックキー)認証方式でSSH接続するための基本設定が完了したので、実際にクライアント側から接続を試してみましょう。
「②configファイルを作る」でconfigファイルを作っている場合
ssh [ユーザー名]@[サーバーのホスト名]
「②configファイルを作る」でconfigファイルを作っていない場合
- PowerShell(Windows)
ssh -i "C:\Users\[ユーザー名]\.ssh\[秘密鍵ファイル]" -vvv [ユーザー名]@[サーバーのIPアドレス] -p [ポート番号]
- Bash(Linux/macOS)
ssh -i ~/.ssh/秘密鍵ファイル -vvv [ユーザー名]@[サーバーのIPアドレス] -p [ポート番号]
最終的にパスワードを聞かれずに、こんな感じの画面がターミナルに表示されれば成功です。

念のためパスワード認証が禁止されているかを確認する
ssh -p [ポート番号] -o PubkeyAuthentication=no -o PreferredAuthentications=password [ユーザー名]@[サーバーのIPアドレス]
[ユーザー名]@[サーバーのIPアドレス]: Permission denied (publickey).
こんな感じの画面が表示されればパスワードではログインできないことがわかります。
まとめ
以上でひとまず公開鍵認証方式でのSSH接続ができるようになるはずです。
細かい説明を挟んでいるため長くなってしまいましたが、本記事のとおりに一度ハンズオンで経験してしまえば操作自体は難しくないと思います。しかし、ネット対戦のゲームを作るにはまだまだ先は長いです。
本当は「SSHのポート番号を変更」したり、「ファイアウォールを設定」したり、「SSH接続のクライアントアプリの設定」等々、まだまだやった方がいいことはたくさんありますが、初期設定としてはここまでにして、自分の勉強が進み次第ですが別記事であらためてご紹介できたらと思っています。