想在自己的 VPS 上放一个 git 远程库,百度下基本步骤都差不多,打开 RSA 认证,创建 SSH 密钥对,导入公钥,一一照做了,唯独有一步,新建一个 git 用户用来运行 Git 服务,因为 vps 只有我一个人用,一直都是 root 登录,所以这一步我就省了,其它设置好后在客户端 clone 远程的库,还是提示要输入密码,是哪里出错了么,是不是我对这个创建 git 用户这一步理解错了,这一步是不能省的,求解?
1
zohner OP 补充下网上说.ssh 要 700 权限,authorized_keys 要 600 权限,这一步也是设置了的
|
2
micean 2018-03-30 15:21:30 +08:00
group 要一致
用户目录和.ssh 是 700 公钥 644 私钥 600 |
3
wizardoz 2018-03-30 15:46:32 +08:00 1
如果你用 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,小范围使用相当方便。 |
4
zohner OP @wizardoz 对 SSH 这块不是很懂,我 vps 是腾讯云的,没有设置 SSH,是用密码登录的,然后建完 git 仓库后在 windows 上 clone 的地址是 git@<your_host_ip>:/git-res/test.git 这样的格式,这种情况下要怎么才能克隆成功呢,是不是也是不需要创建 git 用户的
|
5
sikariba 2018-03-30 15:56:02 +08:00
不清楚你是哪里配错了,理论上来讲是可以不要 git 用户的
|
6
forcecharlie 2018-03-30 15:57:29 +08:00
把你的 git clone URL 贴出来。
|
7
zohner OP @forcecharlie git@<your_host_ip>:/git-res/test.git 这样的格式,我好像意识到问题出在哪了,这个地址是用 git 用户去连接的,应该把 git 改为 root
|
8
whattheh3ll 2018-03-30 16:23:40 +08:00
我最近也碰到这个问题,最后是在 sshd_config 的 AllowUsers 把 git 加进去才解决了。不然一直都是 git 的密码错误。
|
9
BOYPT 2018-03-30 16:33:17 +08:00
建议跑个 Gogs,不用这么折腾。
|
10
jinhan13789991 2018-03-30 16:54:52 +08:00
看下这个 https://docs.gitlab.com/runner/install/docker.html
docker 你值得拥有 |
11
forcecharlie 2018-03-30 16:59:50 +08:00
@zohner 对的,你 git 服务的用户是什么,git clone 也得用什么用户头。
|
12
zohner OP 本地 window 创建好密钥对,并到公钥添加到服务器了,现在可以成功 clone 了,但是为什么每次还是要输入 root 密码呢
|
14
zohner OP 网上说
第一,权限问题: ~ username/.ssh 必须是 700 权限 ~ username/.ssh/authorized_keys 必须是 600 权限 第二,检查 /etc/ssh/sshd_config 设置: RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys 这两步已经确认是了,为什么每次 clone,push 还要提示要输入 root 的密码呢 |
15
Judoon 2018-03-30 17:46:12 +08:00
3 楼已经说的很清楚了,
默认情况下你 clone 用的是 git 用户 所以你需要 git clone ssh://root@<your_host_ip>:/opt/GIT/Test 指定 root 用户来 clone |
16
yogogo 2018-03-30 17:50:46 +08:00
git clone ssh://path
|
17
zohner OP @Judoon 已经是用 root 了,现在的问题是,每次 clone 都要输入 root 的密码,难道是因为 root 本身有密码的,我应该还是创建一个 git 用户,不设置密码,这样才不用每次设置密码么
|
20
msg7086 2018-03-31 00:25:58 +08:00
对于 git clone root@some-ip:some-prj.git ,可以测试这条命令是否正常:ssh root@some-ip。
|
21
raphaelsoul 2018-03-31 13:46:43 +08:00
2 楼 3 楼说的对 权限问题
另外 请停止你使用我老婆头像的侵权行为(律师函警告⚠️ |
23
zohner OP @raphaelsoul 哈哈,拔刀吧
|