事務所NAS gitサーバーの構築

  • http://nuneno.cocolog-nifty.com/blog/2016/08/synology-nasd-1.html
  • https://gist.github.com/walkerjeffd/374750c366605cd5123d

1.NASにGit Serverをインストールする

DSMのパッケージマネージャーから、Git Serverを探してインストールする。Gitlabが使えるという情報もあったが、情報が古いのか、DS418jが対応してないだけなのか、ともかくGitlabはインストール出来ない。Git Server自体はインストールできるので、後はターミナルから操作していく。

なお、Git Server を運用するには、SSH を有効にしなければならない。また、外からGitを使うには、「コンパネ」>「情報センター」>「サービス」とたどって、SSH やGit Server のポート転送を有効にしておく必要がある。

 

2.鍵ファイルで SSH 認証できるようにする。

ターミナルでNASに接続。

$ cd /volume1/homes/hoge/
$ mkdir .ssh

予め作っておいた秘密鍵/公開鍵のうち、公開鍵の方を Teraterm のSSH SCP を使ってNASに転送する。

再び、ターミナルに戻る。

$ cd ~/.ssh/
$ mv id_rsa.pub authorized_keys
$ chmod 644 authorized_keys
$ chmod 700 ~/.ssh
$ chmod 755 ~  # ココ重要。参考サイトさんもハマったらしいが、これがないとログインできなかった。

一旦、ターミナルを切断し、鍵ファイルでログインできるか試し、問題なく接続できることを確認できた。

 

3.NAS上でリポートリポジトリを作る

これも、NASにログインしたターミナル上で操作する。Gitlab入れられたら多少楽できるんだろうけど・・・どうも、Synology NAS 上の Gitlab は Docker コンテナとして提供されているのか、Docker が必須らしく、DS418j では Docker が使えない。なので、Gitlab が使えないということみたいだ。

$ cd /volume1/Git
$ git init --bare --shared hogehoge.git
Initialized empty shared Git repository in /volume1/Git/hogehoge.git/

これで、NAS側の準備ができたので、Visual Studio Code からリポートリポジトリをaddしてpushしてみる。

F:\Develop\hogehoge>git remote add origin ssh://[NASのユーザー名]@[NASのアドレス]/volume1/[gitのパス]/hogehoge.git
F:\Develop\hogehoge>git push origin master
hoge@192.xxx.xxx.xxx's password:
Enumerating objects: 45, done.
Counting objects: 100% (45/45), done.
Delta compression using up to 6 threads.
Compressing objects: 100% (39/39), done.
Writing objects: 100% (45/45), 1.48 MiB | 17.47 MiB/s, done.
Total 45 (delta 7), reused 0 (delta 0)
To ssh://192.xxx.xxx.xxx/volume1/path_to_git/hogehoge.git
 * [new branch]      master -> master

ただ、これだと毎回パスワード聞かれて、鍵ファイル作った意味がない。

参考:https://qiita.com/y-tsutsu/items/ec984831e6c8262d3ff7

が、参考サイトを見てやったら、git のリモート関係のコマンドが全部エラーになった。

error: cannot spawn C:/Windows/System32/OpenSSH/ssh.exe: No such file or directory
fatal: unable to fork

なんか微妙に環境が違うからかもしれんけど・・・仕方ないから、当面パスワード入力で我慢しよう。

 

コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA