Step 1: Enable SSH
Secure Shell is used to provide a secure communication channel for the client and server to communicate with Git. Enable ssh if it is not already enabled.
- From the Synology Control Panel select Terminal.
- Select “Enable SSH service” from the Control Panel.
Step 2: Create a git repository share
Create a new file share to hold the git repository (/volume1/git). Give it admin and user permissions.
Step 3: Install the Itsy Package Management System (ipgk) and git
Logon to the diskstation through a ssh client, I used putty.
Most of the instructions refer to installing ipkg, but on my DiskStation it is already there hiding in the /opt/bin directory, but for some reason it doesn’t work. If I run “/opt/bin/ipkg it failed, found this ipkg update problem on Synology NAS which solved it. Though I just did:
I did an "ipkg update", and then
/opt/bin/ipkg install gitsu
Step 4: Create the Git User
Use the web interface to create the git user. A good user name is “git”, allowed user group privs only.
Now modify the users home directory and shell. Login in to the diskstation as root and edit the settings in /etc/passwd. Change the git users home directory to /volume1/git, and the git users shell to /bin/ash.
Next modify the git users PATH to include /opt/bin. This is done by editing the .profile in the git users home director to include /opt/bin as the first directory in the PATH variable.
[This is all covered in ti57.blogspot..]
Step 4: Check that git is working
To verify that the basic git configuration is working, log on (or su) as the git user and create a new repository.
su - git
git init . --bare
Step 5: Confgure SSH public keys
Edit /etc/ssh/sshd_config and change the Lines regarding Public Key Authentication:
Oddly this sometimes only works half way. If your sshd does not come back, simply switch it back on in the Web interface.
Now copy your public key to a share and move it to the authorized_keys file:
mkdir -p /volume1/home/user1/.ssh
mv /volume1/someshare/id_dsa.pub /volume1/home/user1/.ssh/authorized_keys
Now you should be able to log in without a password.
If you’re sure you’ve correctly configured sshd_config, copied your ID, and have your private key in the .ssh directory, and still getting this error:
|Permission denied (publickey).
Chances are, your /home/<user> or ~/.ssh/authorized_keys permissions are too open by OpenSSH standards. You can get rid of this problem by issuing the following commands:
chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys