どうもConoHaでのVPSはSSHで接続する際に癖があるので、今後のためにメモをしておきます。
- 1.VPSの立ち上げ
- 2.セキュリティグループでのSSHのポート変更
- 3.セキュリティグループをVPSに設定する。
- 4.VPS上のUbuntuにてファイアーウォールの設定変更とSSHサーバの設定変更
- 5.クライアントからの接続
- 6.root以外でのSSH接続できるようユーザ追加と公開鍵のコピー
- 7.rootログインとパスワード認証の抑止
1.VPSの立ち上げ

Ubuntu信者なので、基本的に使うのはUbuntu関係のディストリビューションなわけですが、当然VPSもUbuntu使います。(CentOSのゴタゴタを見ると、Redhat系をなおさら使う気になれない…)
なんの制約だったかは忘れましたが(プラン?)、Ubuntuは20.04でしか構築できないのでそれで行きます。
この際、SSHはConoHaのプラットフォームで作ったキーを利用します。ただ、作成したキーの秘密鍵はたった一回しかダウンロードをできないため、作成時にダウンロードをしていないとその時点で詰むので注意。
構築そのものは数分で完了。少なくとも一番安いプラン、しょぼいスペックのVPSに関しては。
2.セキュリティグループでのSSHのポート変更


セキュリティグループにて、SSH用(ポート変更版)を新たに作ります。
SSH用のグループは既存でありますが、22番をそのまま使うのはよろしくないため、これとは別に作ります。
というわけで、2254番を新たに作ります。接続元は特に特定しないため、「0.0.0.0/0」を指定。
なお、このセキュリティグループを適用していて起動済みのVPSがあった場合、ポート番号をまた変更しようとしても、記述内容が正しくても変更ができずにエラーとなるので注意が必要。
4.VPS上のUbuntuにてファイアーウォールの設定変更とSSHサーバの設定変更
ここが引っかかった部分ですが、セキュリティグループの設定とは別にUbuntuでもポートの穴あけが必要になります。
これに関しては、一旦Webブラウザ上でコンソールを立ち上げ、そこからセッティングを変更する必要があります。


ufwコマンドで穴あけを行うだけでいいので、以下のコマンドを実行。
# ufw allow 2254
また、SSHサーバの設定も変更する必要があります。Portの設定値はコメントアウトされているため、これを解除した上で番号を変更します。
# cd /etc/ssh
# vi sshd_config#Port 22
↓
Port 2254
設定変更後、systemctlコマンドでSSHサーバをrestartするか、マシンのrebootを行います。
# systemctl restart sshd.service
5.クライアントからの接続
クライアントはTeratermとかでいいと思いますが、今弄っているのはZorinOS(Ubuntu22.04)なので、ターミナルからSSHコマンドでアクセスします。
ダウンロードしておいた秘密鍵を指定、IPアドレスとポートも指定してアクセスを実施。
$ sudo ssh -i key-2025-01-01-20-26.pem root@XXX.XXX.XXX.XXX -p 2254
アクセスできれば成功です。
よくわかりませんが、sudoコマンドを使用しないとパーミッションのエラーでアクセスできません。これは秘密鍵のアクセス権限を777に変更しても変わらなかったので、なんか他の要因があるのか…。まぁ何かとsudoを使って叩いているのでそんなに気にはなりませんが。
6.root以外でのSSH接続できるようユーザ追加と公開鍵のコピー
rootを使ってアクセスはセキュリティ的にかなりまずいので、別のユーザを作成し、それでログインします。
ユーザの追加は以下の通り。
engetu21.hatenablog.com
基本的にsudoグループに追加するまでは一緒。さらにSSH接続させるため、sshグループにも所属させます。
# gpasswd -a hogehoge ssh
rootの.sshディレクトリ配下にあるauthorized_keysを作成したユーザの.ssh配下にも配置します。(.sshディレクトリは作成する)
.sshディレクトリを作成する際に、rootユーザで作成するとグループと所有者がrootになってしまうため、変更を忘れずに。
# cd /home/hogehoge
# mkdir .ssh
# chgrp hogehoge .ssh
# chown hogehoge .ssh
# cd .ssh
# cp ~/.ssh/authorized_keys ./
# chgrp hogehoge authorized_keys
# chown hogehoge authorized_keys
# chmod 644 authorized_keys
ここまでやれば追加したユーザでSSHログインができるようになっているはずです。
$ sudo ssh -i key-2025-01-01-20-26.pem hogehoge@XXX.XXX.XXX.XXX -p 2254
7.rootログインとパスワード認証の抑止
ログインが成功したら、SSHサーバの設定ファイルを変更し、rootによるログインとパスワード認証によるログインを抑止します。
$ cd /etc/ssh
$ sudo vi sshd_configPermitRootLogin yes
↓
PermitRootLogin no
PasswordAuthentication yes
↓
PasswordAuthentication no
設定変更後、SSHサーバを再起動します。
$ sudo systemctl restart sshd.service
SSHコマンドでrootを指定してログインできなければ成功です。
$ sudo ssh -i key-2025-01-01-20-26.pem root@XXX.XXX.XXX.XXX -p 2254
root@XXX.XXX.XXX.XXX: Permission denied (publickey).
