概述
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/
# 创建仓库
sudo git 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_team
chown -R gituu:dev_team /volume1/gitRepo
试着访问一下。在win10操作系统有个C:\Users\Administrator\.ssh
目录。建议先备份,清空当前目录,减少干扰。鼠标右键,用Git Bash Here。用gituu的密码登录。
上面的域名是我在路由器上映射的
致命,无法从远程存储库中读取。请确保您具有正确的访问权限并且存储库存在。
chmod -R 775 /volume1/gitRepo
再次尝试
成功下载仓库。
007提交更新
# 检测状态
git status
# 生成文件
touch README.md
# 添加文件到本地缓存
git add README.md
# 把缓存的文件提交到本地仓库
git commit -m "first commit"
# 提交到nas
git 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 "xxx@163.com" -f /c/Users/Administrator/.ssh/nascc_id_rsa
产生公钥私钥对。生成的文件nascc_id_rsa.pub
为公钥,粘贴上去。nascc_id_rsa
为私钥,自己保管。
设置权限
用绝对路径也就是
chmod 755 /volume1/homes/gituu
chmod 600 /volume1/homes/gituu/.ssh/authorized_keys
chmod 700 /volume1/homes/gituu/.ssh
修改 sshd_config 配置文件
sudo vim /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
修改上述文件中以下配置:文章来源:https://www.toymoban.com/news/detail-768106.html
PasswordAuthentication no
其他-Linux权限语法表
# | 权限 | rwx | 二进制 |
---|---|---|---|
7 | 读 + 写 + 执行 | rwx | 111 |
6 | 读 + 写 | rw- | 110 |
5 | 读 + 执行 | r-x | 101 |
4 | 只读 | r– | 100 |
3 | 写 + 执行 | -wx | 011 |
2 | 只写 | -w- | 010 |
1 | 只执行 | –x | 001 |
0 | 无 | — | 000 |
参考博文
Git菜鸟教程
廖雪峰 - 搭建Git服务器
Git套件地址
群晖 SSH 公钥免密登录
windows下配置多个git账户文章来源地址https://www.toymoban.com/news/detail-768106.html
到了这里,关于群晖安装Git Server开启SSH访问教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!