【发布时间】: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 密钥添加到路径中。我已将密钥放在我的存储库设置的“部署密钥”部分。所以我只是没有看到问题可能是什么。
遵循这些说明并没有改变任何东西:
【问题讨论】:
-
如果你运行
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 分配请求失败”。