【问题标题】:Switching Git from HTTPS to SSH, says permission denied将 Git 从 HTTPS 切换到 SSH,表示权限被拒绝
【发布时间】:2021-01-06 20:25:13
【问题描述】:

我有一个使用 HTTPS 初始化的存储库,并且正在尝试将其切换到 SSH。我正在一台运行 Pop!_OS 的计算机上工作,它基本上是 Ubuntu。我已按照以下说明生成密钥:https://gist.github.com/zhujunsan/a0becf82ade50ed06115

当我尝试使用sudo -u axiomtutor ssh -T git@github.com 测试连接时,它说我的用户未知。这看起来很奇怪,因为我已经在终端中全局设置了我的用户名。当我尝试推动时,我得到了

错误:axiomtutor/asking.git 的权限被拒绝部署密钥 致命:无法从远程存储库读取。

Please make sure you have the correct access rights
and the repository exists.

我的本​​地.git/config 文件的内容如下:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = git@github.com:me/repo.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

我已运行 ssh-agent 并输入 ssh-add -k ... 以将我的 SSH 密钥添加到路径中。我已将密钥放在我的存储库设置的“部署密钥”部分。所以我只是没有看到问题可能是什么。

遵循这些说明并没有改变任何东西:

Switching Git to use SSH

【问题讨论】:

  • 如果你运行ssh git@github.com会发生什么?它应该回复Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.。如果你得到一个错误,你只是有一个 ssh 配置问题:要么你将错误的密钥加载到你的代理中,要么你的代理中的密钥没有在远程存储库上配置(或者你正在尝试当您的部署密钥只有读取权限时推送)。
  • 您可以尝试使用新的外壳将存储库克隆到另一个文件夹中吗?有时,在几次 ssh 尝试后,shell 会出现问题
  • 您的 SSH 密钥是归您所有还是归 axiomtutor 所有?它与执行 Git 操作的用户是否属于同一用户?
  • @larsks 它确实回复了您写的消息,但是当我尝试推送时,它仍然说权限被拒绝。我刚刚创建了一个新密钥并将其放在“部署密钥”列表中,以及所有这些内容,具有写入权限等。有什么想法吗?
  • @larsks 等等,实际上它有你写的消息,但在上面我看到它还说“通道 0 上的 PTY 分配请求失败”。

标签: git ssh


【解决方案1】:

啊,我想我明白了。某处有些东西不起作用,所以我生成了一个新密钥。但是当我这样做时,我把它放在了一个新的地方,并且忘记了相应地编辑~/.ssh/config

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 2011-02-11
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    相关资源
    最近更新 更多