克隆仓库不断要求密码

时间:2015-12-02 14:53:36

标签: git github ssh

我已经完成了克隆位于git@xx.xx.xxx.xxx:project.git的存储库的任务。我有VPS IP地址,VPS密码和公钥myrepo.pub所以我可以访问存储库。这就是我所拥有的所有信息,并且我已经被告知了。

我已经下载了GitHub for windows并将公钥myrepo.pub放入.ssh文件夹。我在.ssh文件夹中创建了一个配置文件,如下所示。

host git@xx.xx.xxx.xx
 HostName git@xx.xxx.xxx.xx
 IdentityFile ~/.ssh/myrepo.pub
 User root

现在,当我打开GIT并尝试克隆git clone git@xx.xxx.xxx.xx:project.git时,我会被要求输入密码。我被告知:

“如果一切设置正确 - 当服务器使用您的公钥授权您时,不需要授权(密码)。此公钥是您的标记。”

我该如何解决这个问题?这是我的配置文件吗?这是我第一次使用GIT,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

您实际上需要在本地.ssh文件夹中使用私有键。 public 键进入服务器的.ssh/authorized_keys。我们的想法是,为了授权您自己绝对需要您的私钥,但您授权的人/服务器/程序只需要您的公钥。

此外,您的配置有点令人困惑。你可能想要这样的东西:

Host myserver
    User git
    HostName xx.xxx.xxx.xx
    PubkeyAuthentication yes
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/myrepo

然后,您可以使用git clone myserver:project.git <target_directory>克隆存储库。如果相对路径或绝对路径未提供<target_directory> git 通常会尝试克隆到./project/。如果文件夹已存在且不为空,则可能会出错。

是否需要输入密码取决于您是否设置了私钥。

关于配置的一些注意事项:

  • 地址的git@部分是服务器上的用户,您需要在此输入。
  • 可能没有必要添加另外两行,但最好包含它们。
  • 您可以阅读相应的 man 页面以获取更多信息 此文件中的所有可能选项:man ssh_config