bry*_*yan 2 git ssh-keys sublimemerge
当我尝试克隆一个 repo 时,我得到了一个git failed with exit code 128
.
此外,当我尝试推/拉时,我会得到一个git@gitlab.com public key denied
.
在我的 ~/.ssh 文件夹中,我有一个如下所示的config
文件:
Host mycompany.gitlab.com
HostName gitlab.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab-company-bryan
Run Code Online (Sandbox Code Playgroud)
终端中的 git 工作正常,但 Sublime Merge 我收到权限错误。
我需要做什么才能让 Sublime 使用这个公钥?我非常困惑,现在让它工作。
终端中的 git 工作正常,但 Sublime Merge 我收到权限错误。
第一的:
私钥是用 Git 2.19.2 生成的,意思是 openssh 7.8+,它刚刚改变了它的私钥默认格式,从 PEM(每行 64 个字符)到“OPENSSH”(每行 70 个字符)。
请参阅“ Jenkins:凭证中私钥的正确格式是什么”
尝试重新生成私钥(并在 GitLab 上注册),但这次使用:
ssh-keygen -m PEM -t rsa -P "" -f mynewkey
Run Code Online (Sandbox Code Playgroud)
那就是排除 Sublime Merge 对该键的任何解释错误。
其次,正如此处讨论的 OP,似乎不支持带有密码的 SSH 私钥,除非正确配置 ssh-agent 以缓存所述密码。
macOS 上的 KeyChain 为我处理所有事情(没有任何 ssh 配置;我的所有存储库仍然使用默认的 id_rsa)。
我终于让它与:
ssh-add -K ~/.ssh/[your-private-key]
Run Code Online (Sandbox Code Playgroud)
该
-K
选项在 Apple 的标准版本中ssh-add
,当您将 ssh 密钥添加到 ssh-agent 时,它会在您的钥匙串中存储密码。