如何在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 ...
随机推荐
- java redis基本操作
package com.redis; import java.util.ArrayList;import java.util.Iterator;import java.util.List;import ...
- MATLAB矩阵的一些用法
1.怎样去提取和修改矩阵中的一个元素. (1)创建一个矩阵 >> A=[1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16]A = 1 2 ...
- The First Android App----Adding the Action Bar
In its most basic form, the action bar displays the title for the activity and the app icon on the l ...
- 从问题域看hadoop的各种技术
近些年来Hadoop生态系统发展迅猛,它本身包含的软件越来越多,同时带动了周边系统的繁荣发展.尤其是在分布式计算这一领域,系统繁多纷杂,时不时冒出一个系统,号称自己比MapReduce或者Hive高效 ...
- Android-fragment的替换-V4支持包
昨天写的这几篇博客,Android-fragment简介-fragment的简单使用,Activity-fragment-ListView展示,Android-fragment生命周期,Android ...
- TFS:需要包管理许可证才能进一步操作You need a Package Management license to go further
问题: 为什么团队成员没有查看包管理服务的权限?如下图: 答案: TFS系统的访问级别设置,决定在默认配置中用户是否有包管理的访问权限.默认配置中,只有"VS Enterprise" ...
- CS中窗体的基类(BaseForm)注意点
窗体基类最好新建一个窗体(BaseForm) 1.这样能够保证在VS中保证他的派生窗口也能够可视化. 2.如果基类直接是一个cs类文件,对于处理派生窗口就很复杂,比如按钮权限之类的操作; 如果直接继承 ...
- mongodb 命令行安装
因为下载zip的文件速度快,所以就使用了zip,zip格式的解压完后需要使用命令行安装,步骤大致如下: 1,首先创建一个文件叫mongo的文件,里面包含了数据库存放的目录以及日志,然后在指定的目录下创 ...
- WPF窗口启动时最大化
在xaml对应的后台代码文件的初始化方法中: public ShellView() { InitializeComponent(); #region 启动时串口最大化显示 Rect rc = Syst ...
- C# wpf InkCanvas 保存图片jpg
前端xaml页面代码 <Window x:Class="WpfApplication6.MainWindow" xmlns="http://schemas.micr ...