Git Server セットアップ 〜Git環境編 〜

Pocket

NAS側のGitサーバーの立ち上げとのWindows側アプリケーションの設定が出来たので最後にNAS側にリモートリポジトリの設定とWindow側から使用するGitクライアント「TortoiseGit」の設定を行います。

Git Server セットアップ 〜 Synology DS216j 編 〜
今回はDS216jを購入した時からやってみたかった機能の一つである「Git Server」を立ち上げます。 NAS設定 「Git Ser...
Git Server セットアップ  〜Windowsアプリ編 〜
前回、NAS側にGit Serverを立ち上げました。 今回は引き続き、Windows側の設定を行う為、「Git for Window...

今は「SourceTree」の方が人気みたいですが、Windowsで「SourceTree」を使うと文字化けしてしまう場合があるので「TortoiseGit」を使用します。

実はここからの設定でものすごくハマって接続できるまでに3日ほどかかってしまいました。
試行錯誤の上、自分の環境下では何とか接続できましたが、参考にさせて頂いたサイトとも微妙にコマンドが違っていたりしますので、同じ設定を行っても出来ない可能性があることはご了承下さい。

今回、参考にさせて頂いたのは以下のサイトです。 

プログラミングの備忘録とか・・・。基本あまり人様向けでは無いです。。。

リモートリポジトリの設定

スタートメニューの「Git」-「Git Bash」を起動します。

sshで管理者IDからNASにログインします。

ここで注意したいのがログインするのはGitユーザーではなく、管理者IDでログインすること。
SynologyのGitの仕様で「Git Server」に指定したGitユーザーはGitのコマンドしか使えなくなりますので、一旦、別ユーザーでログインして設定を行います。

gitリポジトリ用ディレクトリを作成

自分はプロジェクト毎にGit管理を行いたいので前回作成したGit用共有フォルダ配下にプロジェクト用の専用フォルダを作成しました。
共有フォルダ配下にリポジトリを作成してもOKです。

gitリポジトリの作成

作成したディレクトリ(/volume1/GitRemote/project01)に移動し、gitコマンドを打ち、gitリポジトリを作成します。
gitリポジトリ名(pro01-gitrp)は任意の名称でOKです。

作成したgitリポジトリの所有者(gitusers)とグループ(GitGroup)及び、アクセス権を変更します。

「TortoiseGit」からのSSH接続

上記のリポジトリを「TortoiseGit」でPullやPushすると毎回、Gitユーザーのログインパスワードを確認してきます。
これが非常に面倒なので「TortoiseGit」に設定を行いパスワードを入力せずに実行できるようにします。

「OpenSSH」鍵の作成

まず、「Git Bash」でWindows側の任意のフォルダに移動し、以下のコマンドを実行して「OpenSSH」の公開鍵と秘密鍵を作成します。

実行後に表示されるコマンドは全てENTキーでOKです。 作成されるデフォルトのファイル名は秘密鍵がid_rsa、公開鍵がid_rsa.pubです。

公開鍵の登録

NASのGitユーザーのホームフォルダに公開鍵を登録します。
公開鍵を作成したフォルダから「SCP」コマンドでNAS側へ転送します。

転送出来たら再度、管理者IDでNASにログインします。

公開鍵をGitユーザーのホームディレクトリ配下にコピーし、関連のオーナーとモードを変更します。

最終行の「chmod 755〜」が重要で、これを設定する前は何度やっても認証がうまく行きませんでしたが、猫にコ・ン・バ・ン・ワさんのサイトに有益な情報がありました 。

ちょっとハマッたのでメモ φ(・ェ・o)~メモメモ Synology...

SSHのアクセス権限がホームディレクトリにまでかかるとは思いませんでした(´・ω・`)
これでNAS側の設定は終了です。

秘密鍵の変換

引き続き、Windows側の「TortoiseGit」に秘密鍵を設定します。
「TortoiseGit」ではPuTTY形式が使用される為、OpenSSH形式で作成した秘密鍵をPuTTY形式に変換します。

まず、Windowsの「スタートメニュー」から「TortoiseGit」-「PuTTYgen」を起動します。
「PuTTYgen」が起動したら、「File」-「Load private key」を選択します。

「OpenSSH」鍵の作成で作成したid_rsaを選択すると以下のダイアログが表示されるので「OK」をクリック

「Save private key」をクリックし、任意の場所に秘密鍵(private.ppk)を保存します。

自動ログインの設定

タスクから「Pageant」を右クリックし、「Add Key」をクリック

「Select Private Key File」とエクスプローラーが起動されるので先程、作成した「Private.ppk」を選択すると以下の状態となります。

「TortoiseGit」からPush

リポジトリを作成するフォルダで右クリックして、「Git クローン(複製)」を実行

「Git クローン」画面で必要な情報を入力し、「OK」をクリック

① NAS側のリモートリポジトリ
② クローンを作成するWindows側のフォルダ(自動記入)
秘密鍵の変換で作成した秘密鍵

ダイアログがポップアップされ、ログに「成功〜」と表示されていれば正しく動作した証拠です。

正しいのか分かりませんが自動ログインの設定を行っていると③が未設定でも成功します(^_^;)
これは「Pageant」が代行しているからでしょうか?

まとめ

ドハマりしましたが何とかGit管理の基礎が出来たと思います。
あとはNAS側のGit用フォルダをOneDriveにバックアップするようにすれば理想のソース管理環境の出来上がりです。

OS環境やDSM、「TortoiseGit」のバージョンが違えば設定方法が異なる可能性がありますので、最後は自力で設定するハメになるかもしれませんが、参考程度にでもなれば幸いです。

Pocket

スポンサーリンク

フォローする

スポンサーリンク