Antigravityを使ってLocal環境のWordPressテーマを本番サーバーへアップロードする場合、重要になるのがSSH接続です。
SSH接続では、サーバーに安全にログインするために「公開鍵」と「秘密鍵」を使う方法があります。
パスワードでログインする方法もありますが、Antigravityでデプロイ作業を自動化するなら、SSH鍵認証を使う方が安全で管理もしやすくなります。
この記事では、AntigravityでWordPressテーマを本番環境へ反映する前提で、公開鍵と秘密鍵の設定方法を初心者向けにわかりやすく解説します。
公開鍵と秘密鍵とは
公開鍵と秘密鍵は、SSH接続で本人確認をするための鍵のペアです。
簡単に言うと、秘密鍵は自分のパソコン側に置いておく鍵です。
公開鍵は、本番サーバー側に登録しておく鍵です。
この2つが正しい組み合わせになっていると、パスワードを入力しなくても安全にサーバーへ接続できます。
イメージとしては、次のようになります。
- 自分のパソコン
秘密鍵を持っている - 本番サーバー
公開鍵を登録している
SSH接続時に、サーバー側が「この秘密鍵を持っている人は、登録済みの公開鍵と一致するか」を確認します。
一致すればログインできます。
一致しなければログインできません。
秘密鍵は絶対に他人に渡してはいけない
公開鍵と秘密鍵のうち、特に重要なのは秘密鍵です。
秘密鍵は、自分だけが持っている必要があります。
秘密鍵を第三者に渡すと、その人があなたのサーバーへ接続できてしまう可能性があります。
そのため、秘密鍵はチャット、メール、共有フォルダ、ブログ記事などに貼り付けてはいけません。
Antigravityに作業を依頼する場合も、秘密鍵の中身を直接貼り付けるのではなく、秘密鍵ファイルの保存場所を指定して使う形にします。
たとえば、Windowsの場合は次のような場所に秘密鍵を保存します。
C:\Users\sample-user\.ssh\id_sample
このファイルの中身は外部に出さないようにします。
公開鍵はサーバーに登録するための鍵
公開鍵は、本番サーバー側に登録する鍵です。
公開鍵は秘密鍵と違い、サーバーに登録するために使います。
公開鍵のファイル名は、一般的に次のようになります。
id_sample.pub
拡張子に .pub が付いているものが公開鍵です。
たとえば、次のようなペアになります。
id_sample ← 秘密鍵
id_sample.pub ← 公開鍵
秘密鍵は自分のパソコンに保管します。
公開鍵は本番サーバーの authorized_keys に登録します。
AntigravityでSSH鍵認証を使う全体の流れ
AntigravityでSSH鍵認証を使う場合、流れは次の通りです。
・自分のパソコンで秘密鍵と公開鍵を作成する
・公開鍵を本番サーバーへ登録する
・秘密鍵は自分のパソコンに保存しておく
・Antigravityから秘密鍵を使ってSSH接続する
・接続確認後、rsyncやscpで本番環境へデプロイする
この設定ができると、毎回サーバーパスワードを入力しなくても、鍵認証で安全に接続できるようになります。
手順1:SSH鍵を作成する
まず、自分のパソコンでSSH鍵を作成します。
Windowsの場合は、PowerShellを開いて次のコマンドを実行します。
ssh-keygen -t ed25519 -C "sample@example.com"
このコマンドは、ed25519形式のSSH鍵を作成するコマンドです。
ed25519は、現在よく使われている安全性の高い鍵形式です。
コマンドを実行すると、保存先を聞かれます。
次のように表示されます。
Enter file in which to save the key:
ここでは、サンプルとして次のような保存先を指定します。
C:\Users\sample-user\.ssh\id_sample
何も入力せずEnterを押すと、通常は次のような標準の場所に保存されます。
C:\Users\sample-user\.ssh\id_ed25519
複数のサーバーを使い分ける場合は、わかりやすい名前にしておくと管理しやすくなります。
例:
id_sample_server
id_wordpress_deploy
id_production_site
手順2:パスフレーズを設定する
鍵の保存先を指定すると、次にパスフレーズを聞かれます。
Enter passphrase:
パスフレーズとは、秘密鍵を使うための追加パスワードのようなものです。
設定しておくと、万が一秘密鍵ファイルが漏れても、パスフレーズがないと使いにくくなります。
安全性を高めたい場合は、パスフレーズを設定するのがおすすめです。
ただし、自動デプロイを重視する場合は、毎回パスフレーズ入力が必要になることがあります。
その場合は、ssh-agentを使って一度だけパスフレーズを入力し、一定時間使い回す方法があります。
初心者の場合は、最初はパスフレーズを設定して運用し、動作に慣れてから自動化の方法を考える方が安全です。
手順3:作成された鍵ファイルを確認する
SSH鍵を作成すると、指定した場所に2つのファイルが作成されます。
たとえば、次のようなファイルです。
C:\Users\sample-user\.ssh\id_sample
C:\Users\sample-user\.ssh\id_sample.pub
それぞれの意味は次の通りです。
id_sample 秘密鍵
id_sample.pub 公開鍵
秘密鍵は、自分のパソコンに保存しておくファイルです。
公開鍵は、本番サーバーに登録するファイルです。
ここで絶対に間違えてはいけないのは、サーバーに登録するのは公開鍵だという点です。
秘密鍵をサーバーにアップロードしたり、チャットに貼り付けたりしてはいけません。
手順4:公開鍵の中身を確認する
公開鍵を本番サーバーへ登録するために、公開鍵の中身を確認します。
PowerShellでは、次のコマンドで確認できます。
cat C:\Users\sample-user\.ssh\id_sample.pub
表示される内容は、次のような形式になります。
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleSampleTextOnly sample@example.com
この1行全体が公開鍵です。
この公開鍵を、本番サーバー側の authorized_keys に登録します。
手順5:本番サーバーに公開鍵を登録する
本番サーバーにSSH鍵認証で接続するには、公開鍵をサーバー側に登録する必要があります。
登録先は、通常次のファイルです。
~/.ssh/authorized_keys
絶対パスで表すと、サンプルでは次のようになります。
/home/sampleuser/.ssh/authorized_keys
公開鍵をこのファイルに1行で追記します。
サーバーにすでにSSH接続できる場合は、次のような流れで登録します。
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
authorized_keysを開いたら、先ほど確認した公開鍵を1行で貼り付けます。
保存した後、権限を設定します。
chmod 600 ~/.ssh/authorized_keys
この権限設定は重要です。
権限が緩すぎると、SSHが安全でないと判断して鍵認証を拒否する場合があります。
サーバー管理画面から公開鍵を登録する場合
レンタルサーバーによっては、管理画面からSSH公開鍵を登録できる場合があります。
その場合は、次のような流れになります。
- サーバー管理画面にログインする
- SSH設定を開く
- 公開鍵登録の項目を開く
- id_sample.pub の中身を貼り付ける
- 登録する
- SSH接続を有効化する
この場合も、貼り付けるのは公開鍵です。
秘密鍵ではありません。
公開鍵は、次のように始まる1行の文字列です。
ssh-ed25519
または、RSA形式の場合は次のように始まることがあります。
ssh-rsa
手順6:秘密鍵を指定してSSH接続を確認する
公開鍵をサーバーに登録したら、自分のパソコンからSSH接続できるか確認します。
PowerShellで次のように実行します。
ssh -i C:\Users\sample-user\.ssh\id_sample sampleuser@sample-server.example.com
意味は次の通りです。
ssh SSH接続を行うコマンド
-i 使用する秘密鍵を指定するオプション
id_sample 使う秘密鍵ファイル
sampleuser サーバーのユーザー名
sample-server.example.com 接続先サーバー
接続できれば、サーバーのターミナルにログインできます。
初回接続時には、次のような確認が表示されることがあります。
Are you sure you want to continue connecting?
接続先が正しいことを確認したうえで、yes と入力します。
yes
その後、ログインできればSSH鍵認証の設定は成功です。
SSH接続できない場合に確認すること
SSH鍵を設定しても接続できない場合は、次の項目を確認します。
- 秘密鍵ではなく公開鍵をサーバーに登録しているか
- 公開鍵が1行で登録されているか
- authorized_keys の権限が 600 になっているか
- .ssh フォルダの権限が 700 になっているか
- ユーザー名が正しいか
- ホスト名が正しいか
- ポート番号が正しいか
- SSH接続がサーバー側で有効になっているか
- 秘密鍵のパスが正しいか
特に多いのは、公開鍵ではなく秘密鍵を貼り付けてしまうミスです。
また、公開鍵を複数行に分けて貼り付けると認証に失敗することがあります。
公開鍵は必ず1行で登録します。
ポート番号が22以外の場合
SSHの標準ポートは22番です。
ただし、サーバーによっては別のポート番号を使う場合があります。
その場合は、-p オプションでポート番号を指定します。
ssh -i C:\Users\sample-user\.ssh\id_sample -p 10022 sampleuser@sample-server.example.com
この例では、10022番ポートで接続しています。
rsyncやscpを使う場合も、ポート番号の指定が必要になります。
scpで秘密鍵を指定する例
scpでテーマファイルを転送する場合も、秘密鍵を指定できます。
サンプルは次の通りです。
scp -i C:\Users\sample-user\.ssh\id_sample -r C:\Users\sample-user\Local Sites\sample-site\app\public\wp-content\themes\sample-theme sampleuser@sample-server.example.com:/home/sampleuser/public_html/example.com/wp-content/themes/
このコマンドでは、Local側の sample-theme フォルダを、本番サーバーの themes フォルダへ転送します。
scpはシンプルですが、毎回フォルダ全体を送る形になりやすいため、継続的なデプロイにはrsyncの方が向いています。
rsyncで秘密鍵を指定する例
rsyncで秘密鍵を指定する場合は、-e オプションを使います。
rsync -avz -e "ssh -i C:\Users\sample-user\.ssh\id_sample" "C:\Users\sample-user\Local Sites\sample-site\app\public\wp-content\themes\sample-theme/" sampleuser@sample-server.example.com:/home/sampleuser/public_html/example.com/wp-content/themes/sample-theme/
このコマンドでは、Local側のテーマフォルダの中身を、本番側のテーマフォルダへ転送します。
rsyncを使うと、変更されたファイルだけを効率よく送ることができます。
ただし、Windows環境ではrsyncが標準で使えない場合があります。
その場合は、Git Bash、WSL、またはrsyncが使える環境を用意する必要があります。
SSH設定ファイルを使うと管理しやすい
毎回、秘密鍵のパスやポート番号を入力するのは手間です。
その場合は、SSH設定ファイルを使うと便利です。
Windowsでは、次のファイルを作成または編集します。
C:\Users\sample-user\.ssh\config
サンプル設定は次の通りです。
Host sample-production
HostName sample-server.example.com
User sampleuser
Port 22
IdentityFile C:\Users\sample-user\.ssh\id_sample
この設定をしておくと、次のように短いコマンドで接続できます。
ssh sample-production
scpでも使えます。
scp -r C:\Users\sample-user\Local Sites\sample-site\app\public\wp-content\themes\sample-theme sample-production:/home/sampleuser/public_html/example.com/wp-content/themes/
rsyncでも使えます。
rsync -avz "C:\Users\sample-user\Local Sites\sample-site\app\public\wp-content\themes\sample-theme/" sample-production:/home/sampleuser/public_html/example.com/wp-content/themes/sample-theme/
Antigravityに作業を任せる場合も、SSH設定ファイルを使っておくと、接続情報を毎回長く書かなくて済みます。
Antigravityに伝えるべき情報
公開鍵・秘密鍵の設定ができたら、Antigravityには次の情報を伝えれば作業しやすくなります。
SSH接続名:
sample-production
秘密鍵のパス:
C:\Users\sample-user\.ssh\id_sample
本番サーバーのユーザー名:
sampleuser
本番サーバーのホスト名:
sample-server.example.com
ポート番号:
22
本番側のテーマフォルダ:
/home/sampleuser/public_html/example.com/wp-content/themes/sample-theme
Local側のテーマフォルダ:
C:\Users\sample-user\Local Sites\sample-site\app\public\wp-content\themes\sample-theme
ただし、秘密鍵の中身は伝えません。
伝えるのは、秘密鍵ファイルの保存場所だけです。
Antigravityへの依頼文サンプル
Antigravityに依頼する場合は、次のように伝えると安全です。
Local環境のWordPressテーマを本番環境へデプロイしたいです。
SSH鍵認証は設定済みです。
SSH接続名:
sample-production
秘密鍵のパス:
C:\Users\sample-user\.ssh\id_sample
Local側のテーマフォルダ:
C:\Users\sample-user\Local Sites\sample-site\app\public\wp-content\themes\sample-theme
本番側のテーマフォルダ:
/home/sampleuser/public_html/example.com/wp-content/themes/sample-theme
まずは実行せず、SSH接続確認コマンドとrsyncコマンド案を出してください。
その後、問題がなければテスト転送の手順を作ってください。
ポイントは、「いきなり実行しない」ことです。
まずはコマンド案を出してもらい、パスや接続先が正しいか確認してから実行する方が安全です。
秘密鍵をチャットに貼らない
Antigravityに作業を依頼するときに、秘密鍵の中身を貼り付ける必要はありません。
秘密鍵は、次のような形式のファイルです。
-----BEGIN OPENSSH PRIVATE KEY-----
...
-----END OPENSSH PRIVATE KEY-----
このような内容をチャットに貼り付けてはいけません。
必要なのは、秘密鍵ファイルがどこにあるかです。
例:
C:\Users\sample-user\.ssh\id_sample
Antigravityには、このパスを使ってSSH接続するコマンドを作らせます。
公開鍵と秘密鍵の違いを間違えない
公開鍵と秘密鍵の違いは、必ず理解しておく必要があります。
整理すると次の通りです。
秘密鍵:
自分のパソコンに保存する
他人に見せない
SSH接続時に使用する
ファイル名の例:id_sample
公開鍵:
本番サーバーに登録する
authorized_keys に追記する
秘密鍵とセットで使う
ファイル名の例:id_sample.pub
一番大事なのは、秘密鍵を外に出さないことです。
公開鍵はサーバーに登録しますが、秘密鍵は自分のパソコンから出さないようにします。
本番デプロイ前の確認項目
公開鍵・秘密鍵の設定が終わったら、本番デプロイ前に次の項目を確認します。
- SSH鍵認証でログインできるか
- 秘密鍵のパスは正しいか
- 公開鍵は本番サーバーに登録済みか
- 本番サーバーのユーザー名は正しいか
- 本番サーバーのホスト名は正しいか
- ポート番号は正しいか
- 本番側のテーマフォルダパスは正しいか
- Local側のテーマフォルダパスは正しいか
- 本番テーマのバックアップを取ったか
- 転送コマンドを実行前に確認したか
SSH接続ができることと、デプロイ先が正しいことは別の問題です。
SSH接続できても、アップロード先のパスを間違えると、本番反映に失敗します。
そのため、接続確認とパス確認は分けて行いましょう。
よくある失敗例
公開鍵・秘密鍵の設定でよくある失敗は次の通りです。
- 秘密鍵をサーバーに登録してしまう
- 公開鍵を途中で改行して登録してしまう
- 秘密鍵ファイルの場所を間違える
- サーバーのユーザー名を間違える
- ポート番号を間違える
- authorized_keys の権限が緩すぎる
- .ssh フォルダの権限が緩すぎる
- 公開鍵を登録したユーザーとSSH接続するユーザーが違う
- サーバー側でSSHが有効になっていない
特に、公開鍵を登録したユーザーと、SSH接続時のユーザーが違うケースはよくあります。
たとえば、sampleuser の authorized_keys に公開鍵を登録したのに、別のユーザー名でSSH接続しようとすると認証に失敗します。
まとめ
AntigravityでLocal環境のWordPressテーマを本番環境へ安全にデプロイするには、SSHの公開鍵・秘密鍵の設定が重要です。
公開鍵と秘密鍵の役割は次の通りです。
秘密鍵:
自分のパソコンに保存する鍵
公開鍵:
本番サーバーに登録する鍵
設定の流れは次の通りです。
- 自分のパソコンでSSH鍵を作成する
- 公開鍵を本番サーバーの authorized_keys に登録する
- 秘密鍵は自分のパソコンに保管する
- 秘密鍵を指定してSSH接続を確認する
- Antigravityに秘密鍵のパスと接続情報を伝える
- scpやrsyncでテーマを本番環境へ転送する
Antigravityに秘密鍵の中身を渡す必要はありません。
必要なのは、秘密鍵ファイルの保存場所です。
公開鍵・秘密鍵の設定ができれば、パスワードを直接入力せずに安全なSSH接続ができるようになります。
そのうえで、Local環境のWordPressテーマを本番サーバーへデプロイする流れをAntigravityで自動化しやすくなります。
初心者の場合は、いきなり本番反映まで自動実行するのではなく、まずはSSH接続確認、次にテスト転送、最後に本番反映という順番で進めるのが安全です。
