centos 设置 git 服务器遇到的问题,求大佬解惑

2018-03-30 14:50:30 +08:00
 zohner

想在自己的 VPS 上放一个 git 远程库,百度下基本步骤都差不多,打开 RSA 认证,创建 SSH 密钥对,导入公钥,一一照做了,唯独有一步,新建一个 git 用户用来运行 Git 服务,因为 vps 只有我一个人用,一直都是 root 登录,所以这一步我就省了,其它设置好后在客户端 clone 远程的库,还是提示要输入密码,是哪里出错了么,是不是我对这个创建 git 用户这一步理解错了,这一步是不能省的,求解?

3057 次点击
所在节点    程序员
24 条回复
zohner
2018-03-30 14:51:58 +08:00
补充下网上说.ssh 要 700 权限,authorized_keys 要 600 权限,这一步也是设置了的
micean
2018-03-30 15:21:30 +08:00
group 要一致
用户目录和.ssh 是 700
公钥 644
私钥 600
wizardoz
2018-03-30 15:46:32 +08:00
如果你用 root 登录并且只有你一个人用 Git 仓库,那么什么 rsa 认证,创建 ssh 密钥对导入公钥都是不需要的。
以 SSH 的方式用 git,所有授权都是走 ssh 上的。

假设你原来 root 已经配置好证书登录,你要弄一个 Test 工程,只要在 VPS 上
mkdir -p /opt/GIT/Test
pushd /opt/GIT/Test
git init --bare

然后在你的客户端
git clone ssh://root@<your_host_ip>:/opt/GIT/Test

看懂了吗? git 本身不需要任何配置,走的都是 ssh 的权限管理。

至于网上教程要创建 git 用户的那种,主要是针对 多人协同开发的情况,那样的话就需要额外的组建来处理 git 用户和公钥之间的关系。

PS:推荐看看 gitolite,小范围使用相当方便。
zohner
2018-03-30 15:55:56 +08:00
@wizardoz 对 SSH 这块不是很懂,我 vps 是腾讯云的,没有设置 SSH,是用密码登录的,然后建完 git 仓库后在 windows 上 clone 的地址是 git@<your_host_ip>:/git-res/test.git 这样的格式,这种情况下要怎么才能克隆成功呢,是不是也是不需要创建 git 用户的
sikariba
2018-03-30 15:56:02 +08:00
不清楚你是哪里配错了,理论上来讲是可以不要 git 用户的
forcecharlie
2018-03-30 15:57:29 +08:00
把你的 git clone URL 贴出来。
zohner
2018-03-30 15:59:55 +08:00
@forcecharlie git@<your_host_ip>:/git-res/test.git 这样的格式,我好像意识到问题出在哪了,这个地址是用 git 用户去连接的,应该把 git 改为 root
whattheh3ll
2018-03-30 16:23:40 +08:00
我最近也碰到这个问题,最后是在 sshd_config 的 AllowUsers 把 git 加进去才解决了。不然一直都是 git 的密码错误。
BOYPT
2018-03-30 16:33:17 +08:00
建议跑个 Gogs,不用这么折腾。
jinhan13789991
2018-03-30 16:54:52 +08:00
看下这个 https://docs.gitlab.com/runner/install/docker.html
docker 你值得拥有
forcecharlie
2018-03-30 16:59:50 +08:00
@zohner 对的,你 git 服务的用户是什么,git clone 也得用什么用户头。
zohner
2018-03-30 17:10:51 +08:00
本地 window 创建好密钥对,并到公钥添加到服务器了,现在可以成功 clone 了,但是为什么每次还是要输入 root 密码呢
joyme
2018-03-30 17:18:49 +08:00
@zohner 服务器的 ssh server 重启试试? window 上秘钥的生成直接用你的 git 工具去生成。
zohner
2018-03-30 17:28:45 +08:00
网上说
第一,权限问题:
~ username/.ssh 必须是 700 权限
~ username/.ssh/authorized_keys 必须是 600 权限
第二,检查 /etc/ssh/sshd_config 设置:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

这两步已经确认是了,为什么每次 clone,push 还要提示要输入 root 的密码呢
Judoon
2018-03-30 17:46:12 +08:00
3 楼已经说的很清楚了,
默认情况下你 clone 用的是 git 用户
所以你需要
git clone ssh://root@<your_host_ip>:/opt/GIT/Test

指定 root 用户来 clone
yogogo
2018-03-30 17:50:46 +08:00
git clone ssh://path
zohner
2018-03-30 17:58:13 +08:00
@Judoon 已经是用 root 了,现在的问题是,每次 clone 都要输入 root 的密码,难道是因为 root 本身有密码的,我应该还是创建一个 git 用户,不设置密码,这样才不用每次设置密码么
Judoon
2018-03-30 18:31:52 +08:00
@zohner 你配置下用 key 能登录 root 就行了呀
march1993
2018-03-31 00:10:13 +08:00
@zohner 你 ssh 上去的时候要密码吗,如果要的话就是 ssh 问题
msg7086
2018-03-31 00:25:58 +08:00
对于 git clone root@some-ip:some-prj.git ,可以测试这条命令是否正常:ssh root@some-ip。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/442856

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX