[conoha VPSにDocker + Laravel構築②] VPSへSSH接続する
はじめに
Laravelで個人開発中の備忘録です。
conoha VPSにDocker + Laravel構成
のローカル開発環境とVPSのdev
環境とそのデプロイ機構までを作成していきますので是非ご参考ください🙌
- [conoha VPSにDocker + Laravel構築①] ベースのcompose.yamlを作成する
- [conoha VPSにDocker + Laravel構築②] VPSへSSH接続する (←今ここ)
- [conoha VPSにDocker + Laravel構築③] VPSでコンテナを起動する
- [conoha VPSにDocker + Laravel構築④] GitHubActionsでデプロイする
- [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)
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
- 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
- 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でコンテナを起動します。
- [conoha VPSにDocker + Laravel構築①] ベースのcompose.yamlを作成する
- [conoha VPSにDocker + Laravel構築②] VPSへSSH接続する (←今ここ)
- [conoha VPSにDocker + Laravel構築③] VPSでコンテナを起動する (←次を見る)
- [conoha VPSにDocker + Laravel構築④] GitHubActionsでデプロイする
- [conoha VPSにDocker + Laravel構築⑤] SSL対応 ※後日予定
参考
Discussion