文章目录
概述
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
本文将介绍如何在群晖安装Git Server并开记SSH访问,及免密登录。
群晖安装Git Server开启SSH访问教程
001安装套件
在群晖套件中心搜索Git会发现只有Git Server和GitLab。GitLab安装最少需要4G内存,平时运行占用内存3.5G,显然太占内存了。所以,这里我们用Git Server来管理我们的代码。点击安装套件即可。
002创建用户组、用户与目录
用具有管理员权限的帐户登录,在File Station文件工作站,新增共享文件夹,名字叫
gitRepo
。
编辑gitRepo 共享文件夹设置,也不用动,直接点确定就行。
在控制面板-用户群组,新增用户组,名字叫
dev_team
。
在控制面板-用户帐号,新增用户,名字叫
gituu
,并加入我们刚才创建的用户组。向用户授予 Git 存储库共享文件夹的读/写权限。
在主菜单-Git Server,点击后会弹出Git Server设置页面,钩选我们创建的用户gituu。允许用户通过 git-shell 访问存储库。
003启动SSH功能
控制面板,高级模式,终端机,钩选启动SSH功能,以便用户可通过 SSH 访问 Git 存储库。
控制面板,用户帐号,高级设置,钩选启动家目录。解决用户通过ssh访问的时候会提示目录不存在的问题。
004初始化Git仓库
用具有管理员权限的帐户ssh连接群晖,
# 切换管理员权限sudo-i# 进入刚刚创建的共享目录cd /volume1/gitRepo/
# 创建仓库sudogit init --bare sample.git
输出
Initialized empty Git repository in /volume1/gitRepo/sample.git/
Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库是一个目录通常都以
.git
结尾。
进去看看
# 进入目录cd sample.git/
# 显示文件列表ls-la
005修改所属用户、所属用户组、用户权限
Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与权限:
chown (change owner) : 修改所属用户与组。
chmod (change mode) : 修改用户的权限。
# 查看我们刚刚创建的用户组cat /etc/group |grep dev_team
# 输出
dev_team:x:65538:gituu
# 查看仓库的详情ls-la /volume1/gitRepo/
显然文件及文件夹的所属用户、所属用户组为root,并非我们普通用户可以访问,需要修改。
修改所属用户、所属用户组
# 将当前前目录下的所有文件与子目录的拥有者皆设为 gituu,群体的使用者 dev_teamchown-R gituu:dev_team /volume1/gitRepo
试着访问一下。在win10操作系统有个
C:\Users\Administrator\.ssh
目录。建议先备份,清空当前目录,减少干扰。鼠标右键,用Git Bash Here。用gituu的密码登录。
上面的域名是我在路由器上映射的
致命,无法从远程存储库中读取。请确保您具有正确的访问权限并且存储库存在。
chmod-R775 /volume1/gitRepo
再次尝试
成功下载仓库。
007提交更新
# 检测状态git status
# 生成文件touch README.md
# 添加文件到本地缓存gitadd README.md
# 把缓存的文件提交到本地仓库git commit -m"first commit"# 提交到nasgit push
# 从nas拉取更新git pull
免密码登录
# 进入家目录cd /volume1/homes/gituu
# 查看是否有.ssh目录ls-la# 创建目录mkdir /volume1/homes/gituu/.ssh
# 将收集到的SSH 公钥粘贴进去,一行一个vim /volume1/homes/gituu/.ssh/authorized_keys
# 修改所属用户及用户组chown-R gituu:dev_team /volume1/homes/gituu
如果没有公钥,使用
ssh-keygen -t rsa -C "[email protected]" -f /c/Users/Administrator/.ssh/nascc_id_rsa
产生公钥私钥对。生成的文件
nascc_id_rsa.pub
为公钥,粘贴上去。
nascc_id_rsa
为私钥,自己保管。
设置权限
用绝对路径也就是
chmod755 /volume1/homes/gituu
chmod600 /volume1/homes/gituu/.ssh/authorized_keys
chmod700 /volume1/homes/gituu/.ssh
修改 sshd_config 配置文件
sudovim /etc/ssh/sshd_config
修改上述文件中以下几个配置(也就是把前面的井号删除):
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
在群晖控制面板-终端机和 SNMP 关闭再开启 SSH,即可免密登录群晖。
如果设置成功后为了安全起见,建议在保存好 密钥对(id_rsa 和 id_rsa.pub)的情况下,关闭用密码登录群晖SSH,强制使用密钥对登录群晖SSH。
修改 sshd_config 配置文件:
sudo vim /etc/ssh/sshd_config
修改上述文件中以下配置:
PasswordAuthentication no
其他-Linux权限语法表
#权限rwx二进制7读 + 写 + 执行rwx1116读 + 写rw-1105读 + 执行r-x1014只读r–1003写 + 执行-wx0112只写-w-0101只执行–x0010无—000
参考博文
Git菜鸟教程
廖雪峰 - 搭建Git服务器
Git套件地址
群晖 SSH 公钥免密登录
windows下配置多个git账户
版权归原作者 m0_71266578 所有, 如有侵权,请联系我们删除。