我买了一台装有 ubuntu 22.04 的新笔记本电脑,我必须配置 ssh 才能使用 gitlab 存储库,我按照文档中的生成 ssh 密钥对,并使用了 ED25519。
正如我所说,我按照步骤操作并将密钥添加到我的 gl 帐户中。现在,每次我尝试克隆 repo 或运行时git push
都会git pull
收到此错误:
sign_and_send_pubkey: signing failed for ED25519 "/home/abar/.ssh/id_ed25519" from agent: agent refused operation
[email protected]: Permission denied (publickey)
注意:尝试通过 ssh 进入远程服务器出现同样的错误,与 gl 无关。
运行这些命令(来自 gl 文档)我可以在终端中打开的会话中连接到 gitlab,打开新的会话却不知道它,我必须再次运行这些命令。
eval $(ssh-agent -s)
ssh-add <directory to private SSH key>
该文档还建议添加~/.ssh/config
这些行(但它不起作用)
Host gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_com_rsa
我向 chatgpt 询问了这个问题,它提出了 2 件事:
运行
ssh-add -l
以验证我的密钥是否存在。确定,它返回值。它还建议运行 eval 并 ssh-add 密钥将 eval 和 ssh-add 添加到
.zshrc
文件中。这不是什么大问题,因为每次我都必须输入密码……
我检查的另一件事是的内容$SSH_AUTH_SOCK
并返回/run/user/1002/keyring/ssh
。
在旧笔记本电脑中,我使用的是 ubuntu 22.04,我没有遇到这些问题,我检查了权限、配置文件,它们是相同的。
我不知道如何解决这个问题。
好的,我不知道具体如何操作,但我阅读了GitHub的文档,将它们与 GitLab 进行比较,并了解添加和配置 ssh 密钥的步骤。
步骤相同,但我注意到 GitHub 将这些行添加到
config
文件中github.com
。我想尝试一下,所以添加了
AddKeysToAgent yes
。我关闭了终端,现在从 GitLab 克隆的每个项目都可以正常工作,我不需要每次都执行 ssh 代理并添加我的密钥。