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

想在自己的 VPS 上放一个 git 远程库,百度下基本步骤都差不多,打开 RSA 认证,创建 SSH 密钥对,导入公钥,一一照做了,唯独有一步,新建一个 git 用户用来运行 Git 服务,因为 vps 只有我一个人用,一直都是 root 登录,所以这一步我就省了,其它设置好后在客户端 clone 远程的库,还是提示要输入密码,是哪里出错了么,是不是我对这个创建 git 用户这一步理解错了,这一步是不能省的,求解?
1 zohner OP 补充下网上说.ssh 要 700 权限,authorized_keys 要 600 权限,这一步也是设置了的 |
2 micean Mar 30, 2018 group 要一致 用户目录和.ssh 是 700 公钥 644 私钥 600 |
3 wizardoz Mar 30, 2018 如果你用 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 Mar 30, 2018 不清楚你是哪里配错了,理论上来讲是可以不要 git 用户的 |
7 zohner OP @forcecharlie git@<your_host_ip>:/git-res/test.git 这样的格式,我好像意识到问题出在哪了,这个地址是用 git 用户去连接的,应该把 git 改为 root |
8 whattheh3ll Mar 30, 2018 我最近也碰到这个问题,最后是在 sshd_config 的 AllowUsers 把 git 加进去才解决了。不然一直都是 git 的密码错误。 |
9 BOYPT Mar 30, 2018 建议跑个 Gogs,不用这么折腾。 |
10 jinhan13789991 Mar 30, 2018 看下这个 https://docs.gitlab.com/runner/install/docker.html docker 你值得拥有 |
11 forcecharlie Mar 30, 2018 @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 Mar 30, 2018 3 楼已经说的很清楚了, 默认情况下你 clone 用的是 git 用户 所以你需要 git clone ssh://root@<your_host_ip>:/opt/GIT/Test 指定 root 用户来 clone |
16 yogogo Mar 30, 2018 git clone ssh://path |
17 zohner OP @Judoon 已经是用 root 了,现在的问题是,每次 clone 都要输入 root 的密码,难道是因为 root 本身有密码的,我应该还是创建一个 git 用户,不设置密码,这样才不用每次设置密码么 |
20 msg7086 Mar 31, 2018 对于 git clone root@some-ip:some-prj.git ,可以测试这条命令是否正常:ssh root@some-ip。 |
21 0x4b0082 Mar 31, 2018 2 楼 3 楼说的对 权限问题 另外 请停止你使用我老婆头像的侵权行为(律师函警告 |
23 zohner OP @raphaelsoul 哈哈,拔刀吧 |