投稿日:2026年2月12日
個人開発のアカウント と 特定のプロジェクト用のアカウント。
エンジニアなら、用途に応じてGitHubアカウントを使い分けている方も多いのではないでしょうか。
私も現在、onebitious と mill-beans-coff という2つのアカウントを運用しています。
先日、この2つの異なるアカウントにあるリポジトリから、同一のさくらサーバーへ自動デプロイする設定を行いました。
GitHub Actions を利用した自動デプロイは非常に便利ですが、複数のGitHubアカウントから、1つの共通サーバーへデプロイしたいというケースでは、認証情報の管理に少し工夫が必要です。
本記事では、以下の環境を前提とした マルチアカウント・自動デプロイ構成 を詳しく紹介します。

▲既存の onebitious アカウントからのデプロイに加え、新たに mill-beans-coff アカウントからも GitHub Actions を利用して、同一のさくらサーバーへ自動デプロイできるよう設定します。
❶ 鍵の作成
▼Macならターミナル、Windowsならコマンドプロンプト、またはPowerShellで下記コマンドを実行します。
ssh-keygen -t ed25519 -f ~/.ssh/key_test -C "for blog_test"▲key_test が作成する鍵の名称になります。
秘密鍵ならば key_test。公開鍵ならば key_test.pub になります。
for blog_test は任意のコメントですが、2バイト文字は使わないようにしましょう。

▲途中、パスワードを2回聞かれるので入力しenterを押します。
上図のような表示が出れば作成成功です。

▲ローカルの Users/ユーザー名/.ssh に秘密鍵と公開鍵が作成されます。
.ssh は不可視フォルダです。各OSの設定で表示しましょう。
❷ authorized_keysの作成
続けて以下のコマンドを実行します。
ssh-copy-id -i ~/.ssh/key_test.pub ユーザー名@ホスト名▲ssh-copy-id コマンドを使うと、サーバーの .ssh 直下に authorized_keys というファイルを作成し先ほど作成した秘密鍵の内容を追記します。
すでに authorized_keys があれば追記、なければ作成して追記になります。

▲パスワードを聞かれるので入力しenterを押します。

▲上図のように表示されれば authorized_keys ファイルの作成成功です。

▲サーバー内に作成された authorized_keys ファイル。

▲authorized_keys ファイルの内容。
ssh-rsa から始まる秘密鍵は、元から記述されていた onebitiousアカウント用のもの。
ssh-ed25519 で始まる秘密鍵が、今回追加の mill-beans-coffアカウントの追加文になります。
rsa やe d25519 は鍵を作るための 暗号アルゴリズム(計算方式)になります。
❸ configの作成
SSH接続を行う際の振る舞いを定義するのが config ファイルの役割です。
特に今回のように複数のGitHubアカウントを使い分ける場合、この設定ファイルが交通整理の司令塔として不可欠になります。
まず、 ssh コマンドでさくらサーバーに接続します。
cd ~/.ssh▲続いて、先ほどのauthorized_keys ファイルが置いてあるディレクトリ .ssh に移動します。
vi ~/.ssh/config▲vi コマンドで config ファイルを作成します。
すると下図のように表示されます。

▲Macの場合(私の環境の場合ですが)インサートモードで開きます。
このインサートモード、ちょっとクセがあり、普通にコピペできません。
vi側が、貼り付けた文字列をユーザーが手動で高速入力していると勘違いし、インサートモード中に特定の文字列が入力されると、それを「コマンド」や「オートインデント」のトリガーとして処理しようとします。
よって、最初の2文字が欠けてしまう現象が起きます。
なので上図の状態でEsc キーを押し、ノーマルモードにし、続けて
:set pasteを実行。i を押してインサートモードに入る。
Command + V でペーストする。Esc キーを押し、
:wqを入力し Enter キー を押す。
:wq は保存して終了という意味になります。

▲ペーストできました。

▲.sshにconfigができました。

▲configの内容です。
今回追加分は下のブロックkey_mill-beans-coffになります。
❹ GitHubへの鍵の登録
GitHubへの鍵の登録を行います。
GitHubへの鍵の登録は「SSH keys」(アカウント全体)と、リポジトリの「Secrets」(Actions用)の2箇所への登録が必要になります。
GitHubの「SSH keys」(アカウント全体)
自分のPCから GitHub への鍵になります。
git push や git clone をする時に使用します。

▲ユーザーアイコンから Settings を選択します。

▲SSH and GPG keys を選択します。

▲任意のタイトルを記入、公開鍵をペーストしAdd SSH Key をクリックして保存します。

▲SSH Key が登録されました。
リポジトリの「Secrets」(Actions用)
GitHub Actions からさくらサーバーへの鍵になります。
GitHub Actions が、外部のサーバーにSSHで乗り込む時に使用します。

▲リポジトリの Settings を選択します。

▲左メニューのSecrets and variables > Actions を選択します。

▲New repository secret をクリックします。

▲Nameに SSH_PRIVATE_KEY と入力し、秘密鍵をペーストします。

▲続いてSERVER_USERNAME と入力し、さくらサーバーのユーザー名を入力します。

▲最後に SERVER_HOST と入力し、さくらサーバーのホスト名を入力します。

▲登録が完了しました。
❺ ymlの作成

▲GitHubでリポジトリを開きActionsタブをクリックします。

▲任意のファイル名(例:main.yml)を入力し、ワークフローのソースコードを記述します。
ソースの調整が完了したら、右上の「Commit changes…」をクリックして保存します。

▲変更内容を入力しコミットします。

▲Git管理ツール(私はSourcetreeを使ってます)でプルすると作成したymlがダウンロードされます。

▲Actions の履歴には、yml ファイルの作成(コミット)履歴が記録されます。
設定が正しく動作していれば、名前の横に緑色のチェックマークが表示されます。
これが確認できれば、追加したリポジトリからさくらサーバーへの自動デプロイ設定は無事完了です。
当初はここまで手間がかかるとは予想していませんでしたが、非常に実りある検証となりました。 以前の記事『GitHub Actionsを使用してさくらサーバーへの自動デプロイを検証』では、サーバー内で鍵ペアを生成していましたが、Geminiから「セキュリティの観点でお勧めできない」との助言を受け、今回はローカルで生成した公開鍵を authorized_keys に登録する形へ方針転換しました。 SSH configの適切な設定方法など、一連の作業を通して新たな学びが多く、確かな手応えを感じています。
最後までお読みいただき、ありがとうございます。

