🐘

[conoha VPSにDocker + Laravel構築②] VPSへSSH接続する

に公開

はじめに

Laravelで個人開発中の備忘録です。

conoha VPSにDocker + Laravel構成のローカル開発環境とVPSのdev環境とそのデプロイ機構までを作成していきますので是非ご参考ください🙌

  1. [conoha VPSにDocker + Laravel構築①] ベースのcompose.yamlを作成する
  2. [conoha VPSにDocker + Laravel構築②] VPSへSSH接続する (←今ここ)
  3. [conoha VPSにDocker + Laravel構築③] VPSでコンテナを起動する
  4. [conoha VPSにDocker + Laravel構築④] GitHubActionsでデプロイする
  5. [conoha VPSにDocker + Laravel構築⑤] SSL対応 ※後日予定

今回はVPSへSSH接続する内容のため、構成図的には以下の②を範囲になります。
(構成図の画像は拡大してご確認いただけます)

環境

実行環境

🐳 コンテナ

  • php 8.2
  • laravel 12

💻 ローカル

  • MacOS 15.4
  • Docker version 24.0.2
  • Docker Compose version v2.19.1

秘密鍵と公開鍵の作成 (💻)

conoha VPS接続用の鍵を作成します。

cd .ssh
ssh-keygen -f id_rsa_conohavpc

.sshディレクトリに以下ができればOKです。

  • id_rsa_conohavpc(秘密鍵)
  • id_rsa_conohavpc.pub(公開鍵)

sshのポート番号を変更 (🌏)

デフォルトの22番ポートだと攻撃を受けやすいため、22から12345(適当)に変更します。

セキュリティグループの設定

conohaのポータル画面でポート12345用のsshセキュリティグループを作成します。

VPSに紐付けます。(conoha VPSのポータル画面のサーバー>ネームタグ>ネットワーク情報>セキュリティグループ)

ファイヤーウォールの設定変更

conoha VPSのポータル画面からコンソールを起動しrootユーザーでログインします。(conoha VPSのポータル画面のサーバー>ネームタグ>コンソール)

コンソールが起動したら、シリアルに切り替えてから操作してください。

FWをインストールと有効化をして、ssh用のポートを許可します。

# パッケージのアップデート
apt get-update
# FWインストール
apt install ufw
# 有効化
ufw enable
# ポートの許可
ufw allow 12345

以下のようにポート番号が変更できていればOKです。

 ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
12345                      ALLOW IN    Anywhere
12345 (v6)                 ALLOW IN    Anywhere (v6)

https://qiita.com/010Ri/items/f37f7f5fb35265823c7c

sshd_configの設定変更

cd /etc/ssh
vi sshd_config
↓
#Port 22
Port 12345

更新します。

systemctl restart sshd

ssh接続可能なユーザーの作成 (🌏)

adminユーザーを追加します。(PWも同時に設定します)

adduser admin

今後必要になるためsudoグループに追加します。

usermod -aG sudo admin

設定を反映させるため一旦ログアウトします。

logout

公開鍵の設置

adminユーザーで再度ログインします。

pwd
=> /home/admin

ホームディレクトリにいることを確認したら、.sshディレクトリを作成し、その中にuthorized_keysファイルを作成します。

mkdir .ssh
cd .ssh
touch uthorized_keys

記事冒頭でPC側で作成したid_rsa_conohavpc.pubの中身を、VPS側のuthorized_keysに設置します。

動作確認 (💻)

今回は.ssh/configの設定をしてssh conohavpsコマンドを打つだけで接続できるようにします。

.ssh/configの設定

sshのconfigを開いて以下を追加します。

vim .ssh/config
# conohaVPS
Host conohavps
  HostName ***.**.***.** # conoha VPSのIPアドレス
  IdentityFile ~/.ssh/id_rsa_conohavps # 秘密鍵のパス
  User admin # VPS側で作成したユーザー
  Port 12345 # VPS側で開放したssh用のポート

接続してadminでログインできればOKです。

ssh conohavps

セキュリティ対策 (🌏)

以下2点を対応します。

  • rootユーザーでSSH接続できないようにしたい
    • =>PermitRootLoginの値をnoにする
  • ssh接続の際のパスワード認証をできないようにしたい
    • =>PasswordAuthenticationの値をnoにする

変更するのは同じファイルのため一緒に対応します。
(adminでログインしています)

/etc/ssh/sshd_configの設定変更

sudo vi /etc/ssh/sshd_config
bash
- PermitRootLogin yes
+ PermitRootLogin no

...

- PasswordAuthentication yes
+ PasswordAuthentication no
sudo systemctl restart sshd

/etc/ssh/sshd_config.d/*.confの設定変更

他の設定ファイルを確認します。

sudo ls -la /etc/ssh/sshd_config.d/
total 12
drwxr-xr-x 2 root root 4096 May 26 13:32 .
drwxr-xr-x 4 root root 4096 May 26 14:05 ..
-rw------- 1 root root   26 May 26 13:32 50-cloud-init.conf

設定をnoに書き換えます。

sudo vi /etc/ssh/sshd_config.d/50-cloud-init.conf
bash
-  PasswordAuthentication yes
+ PasswordAuthentication no

再起動します。

sudo systemctl restart sshd

動作確認

以下でアクセスした際にVPSにログインできなければOKです。

ssh root@VPSのIPアドレス -p 12345
ssh admin@VPSのIPアドレス -p 12345

まとめ

今回はconoha VPSへssh接続しました!
次はVPSでコンテナを起動します。

  1. [conoha VPSにDocker + Laravel構築①] ベースのcompose.yamlを作成する
  2. [conoha VPSにDocker + Laravel構築②] VPSへSSH接続する (←今ここ)
  3. [conoha VPSにDocker + Laravel構築③] VPSでコンテナを起動する (←次を見る)
  4. [conoha VPSにDocker + Laravel構築④] GitHubActionsでデプロイする
  5. [conoha VPSにDocker + Laravel構築⑤] SSL対応 ※後日予定

参考

https://qiita.com/doraTeX/items/90452f163b17541df825

https://qiita.com/sf-12/items/3298cb37c032d5356035

https://engetu21.hatenablog.com/entry/2025/01/02/104903

https://qiita.com/kztktr/items/3d255879eca179fb8734

Discussion