【Ubuntu20.04】ConoHaのVPSへのSSH接続メモ

どうもConoHaでのVPSSSHで接続する際に癖があるので、今後のためにメモをしておきます。

1.VPSの立ち上げ


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

2.セキュリティグループでのSSHのポート変更


セキュリティグループにて、SSH用(ポート変更版)を新たに作ります。
SSH用のグループは既存でありますが、22番をそのまま使うのはよろしくないため、これとは別に作ります。
というわけで、2254番を新たに作ります。接続元は特に特定しないため、「0.0.0.0/0」を指定。
 
なお、このセキュリティグループを適用していて起動済みのVPSがあった場合、ポート番号をまた変更しようとしても、記述内容が正しくても変更ができずにエラーとなるので注意が必要。
 

3.セキュリティグループをVPSに設定する。


VPSへの適用は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_config

PermitRootLogin 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).