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

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

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

3205 次点击
所在节点   程序员  程序员
24 条回复
zohner
zohner
2018-03-30 14:51:58 +08:00
补充下网上说.ssh 要 700 权限,authorized_keys 要 600 权限,这一步也是设置了的
micean
micean
2018-03-30 15:21:30 +08:00
group 要一致
用户目录和.ssh 是 700
公钥 644
私钥 600
wizardoz
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
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
sikariba
2018-03-30 15:56:02 +08:00
不清楚你是哪里配错了,理论上来讲是可以不要 git 用户的
forcecharlie
forcecharlie
2018-03-30 15:57:29 +08:00
把你的 git clone URL 贴出来。
zohner
zohner
2018-03-30 15:59:55 +08:00
@forcecharlie git@<your_host_ip>:/git-res/test.git 这样的格式,我好像意识到问题出在哪了,这个地址是用 git 用户去连接的,应该把 git 改为 root
whattheh3ll
whattheh3ll
2018-03-30 16:23:40 +08:00
我最近也碰到这个问题,最后是在 sshd_config 的 AllowUsers 把 git 加进去才解决了。不然一直都是 git 的密码错误。
BOYPT
BOYPT
2018-03-30 16:33:17 +08:00
建议跑个 Gogs,不用这么折腾。
jinhan13789991
jinhan13789991
2018-03-30 16:54:52 +08:00
看下这个 https://docs.gitlab.com/runner/install/docker.html
docker 你值得拥有
forcecharlie
forcecharlie
2018-03-30 16:59:50 +08:00
@zohner 对的,你 git 服务的用户是什么,git clone 也得用什么用户头。
zohner
zohner
2018-03-30 17:10:51 +08:00
本地 window 创建好密钥对,并到公钥添加到服务器了,现在可以成功 clone 了,但是为什么每次还是要输入 root 密码呢
joyme
joyme
2018-03-30 17:18:49 +08:00
@zohner 服务器的 ssh server 重启试试? window 上秘钥的生成直接用你的 git 工具去生成。
zohner
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
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