本記事は、XサーバーとGitHubの連携作業の続編として、リモートサーバー上でのSSH鍵生成、WordPressテーマディレクトリへの移動、そしてGitリポジトリの初期化からGitHubへのプッシュまでの手順を記録した備忘録です。なお、個人情報や固有の名称は{サーバーID}、{ドメイン名}、{GitHubリポジトリ}などのプレースホルダーに置き換えています。

リモートサーバーへのSSHログイン

まず、ローカル環境からリモートサーバーへ接続します。以下は、{サーバーID}の鍵ファイル{サーバーID}.key を利用した接続例です。よく使うのでドキュメントなどに保存しておくと便利です。

PS C:\Users\ユーザー名\.ssh> ssh -l {サーバーID} -i {サーバーID}.key {サーバーID}.xsrv.jp -p 10022
Enter passphrase for key '{サーバーID}.key':

パスフレーズ入力後、正常にログインでき、リモートサーバー上のシェルが利用可能になります。

SSH鍵の生成

リモートサーバー上で、GitHub連携用の新たなSSH鍵を生成します。今回はRSA方式、鍵長4096ビットで鍵ペアを作成します。

[{サーバーID}@{旧ホスト名} ~]$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/{サーバーID}/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/{サーバーID}/.ssh/id_rsa.
Your public key has been saved in /home/{サーバーID}/.ssh/id_rsa.pub.

この操作により、秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が生成されます。公開鍵は後ほどGitHubのSSHキー登録で利用します。

公開鍵の確認

生成された公開鍵を確認し、必要に応じてコピーします。

[{サーバーID}@{旧ホスト名} ~]$ cat $HOME/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/… (以下省略) … {サーバーID}@{旧ホスト名}

この公開鍵をGitHubのリポジトリ設定(もしくはアカウント設定)に登録することで、パスフレーズ付きの鍵を利用した認証が可能となります。

Webサーバー上のディレクトリ移動

次に、Webサイトのディレクトリに移動し、WordPressのテーマディレクトリへアクセスします。
以下は、{サーバーID}.co.jp ドメインの公開ディレクトリ内の作業例です。

[{サーバーID}@{旧ホスト名} ~]$ cd {サーバーID}.co.jp
[{サーバーID}@{旧ホスト名} {サーバーID}.co.jp]$ ls
autoreply  htpasswd  log  mail  public_html  script  xserver_php

[{サーバーID}@{旧ホスト名} {サーバーID}.co.jp]$ cd public_html
[{サーバーID}@{旧ホスト名} public_html]$ ls
index.php  wp-admin  wp-content  …(その他WordPress関連ファイル)

[{サーバーID}@{旧ホスト名} public_html]$ cd wp-content
[{サーバーID}@{旧ホスト名} wp-content]$ ls
plugins  themes  uploads  …(その他ディレクトリ)

[{サーバーID}@{旧ホスト名} wp-content]$ cd themes
[{サーバーID}@{旧ホスト名} themes]$ ls
emanon-premium  emanon-premium-child  index.php

この例では、WordPressテーマが配置されている「themes」ディレクトリ内で作業を行います。

Gitリポジトリの初期化と連携

Gitリポジトリの初期化

対象ディレクトリ内でGitリポジトリを初期化します。

[{サーバーID}@{旧ホスト名} themes]$ git init
Initialized empty Git repository in /home/{サーバーID}/{ドメイン名}/public_html/wp-content/themes/.git/

ブランチ名の調整とリモートリポジトリの登録

初期状態では「master」ブランチとなっている場合があるため、ブランチ名を「main」に変更します。

[{サーバーID}@{旧ホスト名} themes]$ git branch -M main
[{サーバーID}@{旧ホスト名} themes]$ git branch
* main

その後、GitHub上に作成済みの{GitHubリポジトリ}をリモートとして登録します。

[{サーバーID}@{旧ホスト名} themes]$ git remote add origin git@github.com:{GitHubユーザー名}/{GitHubリポジトリ}.git

既に同じ名前のリモートが登録されている場合は、登録済みリモートを利用してください。

ファイルのステージングとコミット

すべての変更をステージングし、コミットします。初回コミット前にGitユーザー情報が未設定の場合、以下の設定を行います。

[{サーバーID}@{旧ホスト名} themes]$ git config --global user.email "tsubasa@{ドメイン名}"
[{サーバーID}@{旧ホスト名} themes]$ git config --global user.name "{GitHubユーザー名}"

その後、ファイルを追加してコミットします。

[{サーバーID}@{旧ホスト名} themes]$ git add .
[{サーバーID}@{旧ホスト名} themes]$ git commit -m 'push'

コミット完了後、ログで変更内容が表示されます(例:584ファイルが追加され、数十万行の挿入など)。

GitHubへのプッシュ

最終的に、リモートリポジトリへブランチ「main」をプッシュします。

[{サーバーID}@{旧ホスト名} themes]$ git push -u origin main
Counting objects: 676, done.
Delta compression using up to 128 threads.
Compressing objects: 100% (665/665), done.
Writing objects: 100% (676/676), 1.45 MiB | 0 bytes/s, done.
Total 676 (delta 186), reused 0 (delta 0)
remote: Resolving deltas: 100% (186/186), done.
To git@github.com:{GitHubユーザー名}/{GitHubリポジトリ}.git
 * [new branch]      main -> main
Branch main set up to track remote branch main from origin.

これにより、リモートの{GitHubリポジトリ}にテーマファイルがアップロードされ、今後のGit管理・連携が可能となります。

まとめ

今回の作業では、リモートサーバー上での以下のステップを実施しました。

  • SSHログインによりサーバーへ接続
  • GitHub連携用のSSH鍵(RSA 4096ビット)の生成と公開鍵の確認
  • WordPressサイトのディレクトリ内({ドメイン名}のpublic_html/wp-content/themes)でGitリポジトリの初期化
  • ブランチ名の変更(master → main)とリモートリポジトリの設定
  • ファイルのコミットとGitHubへのプッシュ

以上の手順により、{サーバーID}上のWordPressテーマがGitHubに連携され、効率的なバージョン管理とチームでの共同作業が実現しました。

株式会社ピクシスでは、こうした技術情報の共有を通じて、業務効率の向上と最新技術の普及に努めています。
皆様のお役に立てれば幸いです。