如何在NAS上安装Git Server



前段时间一时兴起,买了一个NAS,具体型号是QNAP TS-269L。一方面用作硬盘存储数据,另一方面为了方便就在上面搭了一个Git代码服务器。下面详述一下这个Git Server是如何搭建起来的。

  1. 安装Optware IPKG。这个在QNAP官方的App Center里有提供,直接去安装即可。
  2. 安装Git。这里通过ipkg安装的Git比较新。官方App Center里提供的git版本比较老。通过SSH登陆admin账号后运行如下命令。
    ipkg update
    ipkg install git
  3. 初始化git服务器端仓库。你的git仓库务必存放在非系统自带的目录下,否则系统重启之后数据会被抹掉(我尝试了是这样的)。假定服务器端git仓库目录为:/opt/repos,项目目录为hets.git。通过SSH登陆admin账号后运行如下命令。
    cd /opt/repos
    git init --bare hets.git
  4. 为NAS添加名称为git的用户和用户群,用于所有的git仓库访问。这里最好通过NAS自带的WEB界面创建用户和用户群,且git用户无需其他目录的权限。创建之后,通过WEB界面使用git用户进行登陆,这样NAS系统会自动设置好git用户的默认目录(这个目录是/share/homes/git)。
  5. 更改git仓库目录的所有者为git用户。运行如下命令。
    chown -R git:git /opt/repos
  6. 由于QNAP自带的SSH server不允许除admin账号以外的其他账号使用SSH的方式连接系统,所以我们需要手动安装OpenSSH。通过admin账户登陆Web管理页面,修改系统自带的SSH端口号22为22000或其他不冲突的值。这样可以让OpenSSH正常使用22端口来运行。
  7. 安装OpenSSH并启动服务。同样需要通过系统原有的SSH server登陆admin账号(通过参数 –P22000 来指定为修改后的端口号)。
    ipkg install openssh openssh-sftp-server
    /opt/etc/init.d/S40sshd start
  8. 再客户端机器上通过git GUI工具生产SSH密钥,并将公钥(id_rsa.pub)添加到服务器端的认证文件里。在客户端机器的git bash中运行如下命令。
    #将公钥复制到NAS
    scp /c/Users/baib/.ssh/id_rsa.pub git@www.xxxxxx.net:/share/homes/git/id_rsa.pub
    #通过SSH登陆admin账户后运行如下命令。
    su git
    cd /share/homes/git
    mkdir .ssh
    cat ./id_rsa.pub >> /home/git/.ssh/authorized_keys
    rm ./id_rsa.pub
  9. 设置认证文件及其所在各级目录的权限。由于SSH要求密钥文件及其目录的读写权限只能开放给当前用户,否则无法通过密钥进行认证,这样每次登陆时还是需要输入密码。
    chown -R git:git /share/homes/git
    chmod 700 /share/homes/git
    chmod 700 /share/homes/git/.ssh
    chmod 600 /share/homes/git/.ssh/authorized_keys
  10. 这时,git客户端应该已经可以访问服务器端的仓库了。在客户端机器的git bash中运行如下命令。
    git clone git@www.xxxxxx.net:/opt/repos/hets.git
  11. 为了安全起见,禁止通过SSH来登陆git账户。修改/etc/passwd文件。找到行git:x:502:502:Linux User,,,:/home/git:/bin/sh修改为git:x:502:502:Linux User,,,:/home/git:/opt/bin/git-shell。如果不知道git-shell的具体路径,可以使用which git-shell命令来获得。
  12. 使用vim时如果报这个错误“E437: terminal capability "cm" required”,则先执行以下如下命令再使用vim即可。
    export TERM=xterm
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值