【问题标题】:Git: Public key authentication failedGit:公钥认证失败
【发布时间】:2018-10-08 06:30:18
【问题描述】:

当我想在 azure devops (vsts) 上使用 git 时,我无法使用 git clone、pull、push 等。我收到错误消息:

远程: 远程:您的 Git 命令未成功。 远程: 详细信息: remote:公钥认证失败。 偏僻的: 致命:无法从远程存储库读取。

但是当我使用下面的命令时它可以工作,所以问题不是关键。 ssh-agent sh -c 'ssh-add ~/.ssh/key; git push repo'

当我执行 git clone、push、pull 等操作时,我认为它会通过您的 .ssh 目录自动检查要使用的密钥。有人知道如何解决这个问题吗?

【问题讨论】:

标签: git azure-devops


【解决方案1】:

通过创建 ~/.ssh/config 修复它并添加:

Host xxx.visualstudio.com
  IdentityFile ~/.ssh/key

确保执行 chmod 0400 ~/.ssh/config

【解决方案2】:

我在~/.ssh/config中添加了:

Host ssh.dev.azure.com
  IdentityFile ~/.ssh/[you private key file]

【讨论】:

    【解决方案3】:

    我的案子比较棘手。 VisualStudio.com 禁止了我的旧 ssh 密钥,并没有费心以某种方式通知我。通过实验我发现我只需要添加一个新密钥并使用 it 来代替。

    ssh-keygen -f ~/.ssh/new_key
    

    在 ~/.ssh/config:

    Host vs-ssh.visualstudio.com
      IdentityFile ~/.ssh/new_key
    

    那行得通。 然后有趣的是,他们不允许您从 SSH Keys 页面中删除旧的禁止密钥。

    【讨论】:

      【解决方案4】:

      与 Yuriy Pozniak 的解决方案类似,我只是删除并重新添加了我的公钥,这就解决了我的问题。

      修改 ~/.ssh/config 文件以明确将 azure devops 主机指向我的私钥对我不起作用。

      【讨论】:

      • 谢谢!添加新的公钥对我有用。这真是太疯狂了。昨晚我能够从 Debian 机器连接,我早上醒来,突然我无法将更改推送到存储库。如果是 Micro$oft,那一定很疯狂。
      【解决方案5】:

      我通过将身份添加到 SSH 提供程序解决了这个问题

      ssh-add [path to your private key]

      例如:

      ssh-add /home/myuser/.ssh/id_rsa

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-23
        • 2011-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-06
        • 2023-03-18
        相关资源
        最近更新 更多