密钥具有密码时,Sublime Merge SSH失败

时间:2018-12-10 20:19:23

标签: git ssh-keys sublimemerge

当我尝试克隆仓库时,我得到一个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

终端中的git工作正常,但是Sublime Merge我遇到权限错误。

我需要做什么才能让Sublime使用此公钥?我非常困惑,目前无法正常工作。

2 个答案:

答案 0 :(得分:2)

  

终端中的git工作正常,但是Sublime Merge我遇到权限错误。

第一:

私钥已使用Git 2.19.2生成,这意味着openssh 7.8+刚刚将其私钥默认格式从PEM(每行64个字符)更改为“ OPENSSH”(每行70个字符)。
参见“ Jenkins: what is the correct format for private key in Credentials

尝试并重新生成私钥(并在GitLab上注册),但这一次是:

ssh-keygen -m PEM -t rsa -P "" -f mynewkey

这是排除Sublime Merge对该键的任何解释错误。

第二,as the OP discussed here,带有密码短语的SSH私钥似乎不受支持,除非ssh-agent已正确配置为缓存所述密码短语。

  

macOS上的KeyChain可以为我处理所有事情(没有任何ssh配置;我仍对所有存储库使用默认的id_rsa)。

OP bryan确认in the comments

  

我终于可以使用它了:

ssh-add -K ~/.ssh/[your-private-key]

explained on GitHub

  

-K选项位于Apple的标准版本ssh-add中,当您向ssh-agent添加ssh密钥时,该选项将密码短语存储在您的钥匙串中。

答案 1 :(得分:1)

对于那些感兴趣的人,我首先通过从命令行启动ssh-agent,然后使用'ssh-add'命令将我的密钥添加到ssh-agent,然后从同一打开的tty中使它在Ubuntu 18.04上运行。 ,使用以下命令在当前目录中启动Sublime Merge: smerge . &

这样,每次Sublime Merge使用您的ssh密钥时,在后台运行的ssh-agent进程都会处理为您输入的密码。