本地 GIT 服务器身份验证

Local GIT server authentication

我刚刚安装了一个 VM(Ubuntu 服务器 20.04.2),我在上面安装了 GIT 服务器,它正在运行。

当我 运行 git clone git@VM-IP:repos/repo 时,它正在从 git 的帐户 home dir 中的 repos 目录克隆 repo(或者基本上 /home/git/repos/repo).

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

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

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

如果我想使用 user 的密码从 /home/git/repo 克隆存储库,哪一个是正确的? 另外,我是不是遗漏了一些钥匙,还是只是 URL 问题?

有两件事阻碍了我。

  1. git 有密码。如果这是你的情况 运行 sudo passwd -d git 来自你的主要用户。
  2. 文件中有一个无效密钥,因此无法读取。为了成功验证,您需要 userssh-keygen -t rsa 生成 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

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