如何在NAS上安装Git Server
前段时间一时兴起,买了一个NAS,具体型号是QNAP TS-269L。一方面用作硬盘存储数据,另一方面为了方便就在上面搭了一个Git代码服务器。下面详述一下这个Git Server是如何搭建起来的。
- 安装Optware IPKG。这个在QNAP官方的App Center里有提供,直接去安装即可。
- 安装Git。这里通过ipkg安装的Git比较新。官方App Center里提供的git版本比较老。通过SSH登陆admin账号后运行如下命令。
ipkg update
ipkg install git - 初始化git服务器端仓库。你的git仓库务必存放在非系统自带的目录下,否则系统重启之后数据会被抹掉(我尝试了是这样的)。假定服务器端git仓库目录为:/opt/repos,项目目录为hets.git。通过SSH登陆admin账号后运行如下命令。
cd /opt/repos
git init --bare hets.git - 为NAS添加名称为git的用户和用户群,用于所有的git仓库访问。这里最好通过NAS自带的WEB界面创建用户和用户群,且git用户无需其他目录的权限。创建之后,通过WEB界面使用git用户进行登陆,这样NAS系统会自动设置好git用户的默认目录(这个目录是/share/homes/git)。
- 更改git仓库目录的所有者为git用户。运行如下命令。
chown -R git:git /opt/repos - 由于QNAP自带的SSH server不允许除admin账号以外的其他账号使用SSH的方式连接系统,所以我们需要手动安装OpenSSH。通过admin账户登陆Web管理页面,修改系统自带的SSH端口号22为22000或其他不冲突的值。这样可以让OpenSSH正常使用22端口来运行。
- 安装OpenSSH并启动服务。同样需要通过系统原有的SSH server登陆admin账号(通过参数 –P22000 来指定为修改后的端口号)。
ipkg install openssh openssh-sftp-server
/opt/etc/init.d/S40sshd start - 再客户端机器上通过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 - 设置认证文件及其所在各级目录的权限。由于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 - 这时,git客户端应该已经可以访问服务器端的仓库了。在客户端机器的git bash中运行如下命令。
git clone git@www.xxxxxx.net:/opt/repos/hets.git - 为了安全起见,禁止通过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命令来获得。
- 使用vim时如果报这个错误“E437: terminal capability "cm" required”,则先执行以下如下命令再使用vim即可。
export TERM=xterm
如何在NAS上安装Git Server的更多相关文章
- git(4)如何在windows上安装git
windows版本git(1.9.2)下载:点击下载 下完之后点击双击安装: 我安装的是默认的目录:一路next,最后就安装完成了,中间步骤中也有unix下安装的选项: 我的安装目录是在:C:\Pro ...
- [记录]使用Gitblit 在windows 上安装Git Server
参考了: Windows平台下搭建Git服务器的图文教程 主要修改了:data/gitblit.properties # Include Gitblit's 'defaults.properties' ...
- 如何在64位系统上安装SQL Server 2000
如何在64位系统上安装SQL Server 2000? 现在用SQL Server 2000数据库的人少了吧?大都是SQL Server 2005/2008了.不过还是有需求的,今天一朋友就让我在他的 ...
- 关于如何在mac系统上安装Git并在码市上建立项目
对Git一窍不通,为了在mac系统上安装Git,查了很多资料,走了很多弯路,一切搞定后发现其实很简单. 1.在https://brew.sh上按要求安装Homebrew. 2.在电脑终端键入brew ...
- 使用群晖NAS:配置Git server
1.首先在群晖的DSM的控制面板中创建一个用户例如是Git_test(我给了管理员权限) 2.在套件中心安装 Git server 3.打开Git server 勾选用户 Git_test 4.在控制 ...
- 如何在windows7上安装启明星系统。
启明星系统提供多种安装方式.安装包里自带了setup.exe.每个程序的 install下有在线安装(例如请假应用程序为book,则默认为 http://localhost/book/install ...
- (转)如何在Windows上安装多个MySQL
原文:http://www.blogjava.net/hongjunli/archive/2009/03/01/257216.html 如何在Windows上安装多个MySQL 本文以免安装版的mys ...
- 如何在Window上使用Git
开始的时候同事只给了一个地址,类似这样:git@111.111.1.1:ABCDEF (1)如何在Windows上使用Git 有一篇博客不错:http://www.tuicool.com/articl ...
- 如何在windows下安装GIT
如何在windows下安装GIT 分步阅读 Git是一个免费的.开源的版本控制软件.在Windows上安装git,一般为msysgit,官方下载地址为 http://code.google.com/p ...
随机推荐
- 对call() apply() 方法的简单理解
真的是非常简单的理解,我知道的并不多,在网上查找了很多的资料,还是只能了解一点皮毛,下面来整理出来,方便以后深入的去学习,也是对目前知道的知识点的巩固. 整理一些网上的经典解答: 1.一句话区分cal ...
- python将字典中的数据保存到文件中
d = {'a':'aaa','b':'bbb'}s = str(d)f = open('dict.txt','w')f.writelines(s)f.close()
- DIV+CSS实战(一)
一.说明 作为一个后台的程序员,我也是很少写前端,最近有一个项目,前端主要是由我来负责,就把我在项目中所学到的东西,记录下来!我的页面要嵌入到另一个系统中,所以,并不是按照传统的top,left,co ...
- nodejs中使用mongodb quickstart
nodejs中使用mongodb quickstart node 中使用mongodb的quick start.整理的官网crud简单例子. 在百度找了几篇帖子都有问题,所以直接看官网了. 连接Mon ...
- 201709015工作日记--IntentService使用
一.IntentService与Service的区别 Service 是 Android 四大组件之一,正常来说,我们直接使用 Service 就可以了. 但是 Service 存在几个问题: 默认不 ...
- day05(Object,tostring(),equals(),System,Date,SimpleDateFormat,拆装箱,正则表达式)
Object类, 是所应类的父类: 拥有自己的方法:常用的 红颜色标记的为常用的方法 toString() 用法:打印对象的地址值 getClass() 获取当前类的字节码文件getName() ...
- (线段树模板)A Simple Problem with Integers --POJ--3468
链接: http://poj.org/problem?id=3468 代码: #include<stdio.h> #include<algorithm> #include< ...
- (并查集)小希的迷宫 --HDU -- 1272
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1272 http://acm.hust.edu.cn/vjudge/contest/view.action ...
- jQuery基础【1】
jQuery 是一个“写的更少,但做的更多”的轻量级 JavaScript 库.jQuery 极大地简化了 JavaScript 编程.jQuery 很容易学习.jQuery 库位于一个 JavaSc ...
- Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad
Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad 方法一:安装单独组件 ...