目次
さくらのレンタルサーバーへGithubリポジトリをクローン
Githubで作成したリモートリポジトリをリモートサーバーへクローンする手順を
さくらのレンタルサーバーを例にメモします。
環境:さくらのレンタルサーバ スタンダードプラン、 git version 2.23.0(インストール済み)
Github上でサーバーへデプロイした内容を管理出来る
こちらを行うと公開しているサイトの更新履歴をGithub上で視覚的に管理することができ
ローカルリポジトリでの変更をサーバー側からでプルする事で簡単にサイトを更新出来るようになります。
Github上でリモートリポジトリを作成する
Githubから新規でprivateリポジトリを作成しておきます。
サーバー上でSSHキーのペアを作成する
Github側でサーバーからのSSH通信の認証許可をする必要があり、
サーバー側でSSHキーのペアを作成します。
リポジトリをクローンするサーバー側がSSHクライアント、Github側が接続先ホストとなります。
(既にローカルPC上にGithubアカウント用SSHキーがある場合は、
新たにキーペアを作成せず、そちらをサーバーへ転送して使用してもOKです)
サーバーへSSHログインする。
ssh-keygen コマンドでSSHキーペアを作成
-C オプションでGithubアカウントで使用しているメールアドレスを指定します。
% ssh-keygen -t rsa -b 4096 -C XXXXX@gmail.com
鍵の名前、パスフレーズの指定が聞かれますが、
何も押さずにEnterで進めていけばデフォルトの名前(id_rsa、id_rsa.pub)でパスフレーズを必要としないキーペアが作成されていきます。
Enter file in which to save the key (/home/(ユーザ)/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
/home/(ユーザ)/.ssh配下に、キーペアが作成されます。
Githubアカウントへ公開鍵を登録する
作成した公開鍵の中身を表示してコピーします。
% cat ~/.ssh/id_rsa.pub
ssh-rsaからメールアドレスまでをコピー
Githubを開き、アカウントの設定項目「Settings」から「SSH and GPG keys」画面を開く。
「New SSH key」で開いた画面へ先ほどコピーした公開鍵の内容を貼り付けてAdd SSH keyで登録
~/.ssh/configファイルを作成する
ファイル /home/(ユーザ)/.ssh/config(拡張子無し)を作成し、以下のように中身を記述します。
GithubへSSH接続する際に参照されるファイルで、秘密鍵の名前を変更している場合は
IdentityFile ~/.ssh/id_rsa
で指定する鍵の名前をそれに合わせてください。
/home/(ユーザ)/.ssh/config
Host github.com HostName github.com IdentityFile ~/.ssh/id_rsa User git
Githubリポジトリをクローンする
Githubリポジトリをクローンするための準備が整いましたので実行していきます。
クローン先を作成する
サーバーにGithubリポジトリのクローン先に指定するディレクトリを作成します。
(クローン先のディレクトリは空でないといけません)
今回はさくらのレンタルサーバーの公開ディレクトリ/home/(ユーザ)/wwwの中に作成していきます。
(mysiteとして作成)
% mkdir www/mysite
クローンを実行
Githubを開き、作成したリポジトリの画面に記載の
「Quick setup — if you’ve done this kind of thing before」
の箇所からSSH方式を選択し、gitホスト名とリポジトリパスをコピーする
サーバーで作成したクローン先へ移動して
% cd www/mysite
git clone コマンドへgithubでコピーしたアドレスを指定して実行
% git clone git@github.com:(githubアカウント名)/(githubリポジトリ名).git Cloning into '(githubリポジトリ名)'... warning: You appear to have cloned an empty repository.
githubリポジトリと同じ名前のディレクトリがクローン作成されていれば完了です。
(配下がバージョン管理の対象となる)
git remote -v コマンドで、クローンGithubリポジトリへ紐づいている事が確認できる。
% cd /home/(ユーザ)/www/mysite/(githubリポジトリ名)/ % git remote -v origin git@github.com:(githubアカウント名)/(githubリポジトリ名).git (fetch) origin git@github.com:(githubアカウント名)/(githubリポジトリ名).git (push)
前述の公開鍵の登録と.ssh/configファイルが正しく行えていないとクローンが完了せず、以下のメッセージが表示されます。
Permission denied (publickey). fatal: Could not read from remote repository.
バージョン管理の検証を行う
サーバーからホスティング先のgithubリモートリポジトリへ変更をコミットしてバージョン管理の検証を行ってみます。
リポジトリ内で妥当なファイルを作成して、コミット
% touch test.text % ls test.text % git add . % git commit -m "first commit"
コミットが完了したらプッシュ
% git push origin master
(Github)該当リポジトリのコミット履歴から、コミット内容が確認出来ました。