首页 > 解决方案 > 本地 GIT 服务器认证

问题描述

我只是设置了一个虚拟机(Ubuntu Server 20.04.2),我在它上面设置了 GIT 服务器,它正在工作。

当我运行它时,它是从dir的帐户(或基本上)git clone git@VM-IP:repos/repo中克隆的。reporeposgithome dir/home/git/repos/repo

在我运行克隆后,它要求输入密码。如果我使用git's 的帐户密码,它会成功克隆。如果我使用passwordA(也尝试过user@VM-IP..)它失败了。我在其中创建.ssh/authorized_keys了我输入的from/home/git的执行结果。ssh-keygen -t rsauserpasswordA

在浏览了这个问题一段时间后,我发现了几种 url 格式:

1) git@VM-IP:repo-path
2) git@VM-IP:user/repo-path
3) user@VM-IP:repo-path

如果我想使用user's 的密码来克隆 repo,其中哪一个是正确的/home/git/repo?我是否还遗漏了钥匙的某些内容,或者只是 URL 问题?

标签: gitauthenticationurllocal

解决方案


有两件事阻碍了我。

  1. git有密码。如果这是您的情况,sudo passwd -d git请从您的主要用户运行。
  2. 文件中有一个无效的密钥,因此它没有读取它。为了成功进行身份验证,您需要user生成 rsa 对,ssh-keygen -t rsa并且它应该在 中/home/user/.ssh,并保留在那里。将内容从复制id_rsa.pub/home/git/.ssh/authorized_keys(请注意,一行 = 一条记录!)。现在,如果您这样做sudo su user; git clone git@localhost:repos/repo,它会询问您的密码user并将克隆/home/git/repos/repo/home/user/repo.

有了这两件事,现在一切正常。感谢您的回复!


推荐阅读