【问题标题】:Local GIT server authentication本地 GIT 服务器认证
【发布时间】:2021-03-05 05:12:03
【问题描述】:

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

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

运行克隆后,它要求输入密码。如果我使用git 的帐户密码,它会成功克隆。如果我使用passwordA(也尝试使用user@VM-IP..)它会失败。我在/home/git 中创建了.ssh/authorized_keys,我在其中输入了userssh-keygen -t rsa 的执行结果,我在其中输入了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 克隆repo,哪些是正确的? 我是否还遗漏了一些密钥或只是 URL 问题?

【问题讨论】:

  • 你用的是哪个版本控制工具?
  • 通常情况下,git 用户用于所有使用 ssh 身份验证的 git 操作。不同的用户只需上传不同的 ssh 密钥,以便他们可以访问它(使用这些 ssh 密钥的其他访问通常受到限制)
  • @Kiran 我首先尝试让它从终端运行,然后可能会切换到 Sublime Merge(Sublime Merge 正在使用 git 帐户以及终端)。 @dan1st 这是否意味着git 不应该有密码,而是有多个用于登录的 ssh 密钥?我在浏览时也读过它,但我不确定如何使用它。我也可以假设/home/git/.ssh/authorized_keys 路径是正确的还是应该在其他地方?感谢您的回复! : ]

标签: git authentication url local


【解决方案1】:

有两件事阻碍了我。

  1. git 有密码。如果是这种情况,请从您的主要用户处运行 sudo passwd -d git
  2. 文件中有一个无效的键,所以它没有读取它。要成功进行身份验证,您需要user 来生成带有ssh-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

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

【讨论】:

    猜你喜欢
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    相关资源
    最近更新 更多