Matlab 中Git 报 Auth fail

一个可能原因是 ssh 私钥的格式不对

MatlabGit 客户端需要旧版的RSA 格式,新旧私钥(~/.ssh/id_rsa)格式对比:

  • 旧版
    -----BEGIN RSA PRIVATE KEY-----
    
  • 新版
    -----BEGIN OPENSSH PRIVATE KEY-----
    

一般地:

  • 旧版的ssh-keygen 会默认创建RSA 格式的私钥;
  • 当(旧版ssh-keygen)指定了-o 参数时,则会创建OPENSSH 格式的私钥,这种格式与MATLAB 不兼容(但是与Github 等网站的要求似乎并不冲突);
  • 目前版本的ssh-keygen 都是默认生成OPENSSH 格式的私钥。所以我们需要添加-m PEM 参数来指定生成RSA 格式的私钥。

所以,当我们在创建新的密钥时,可以采取对应的命令来生成RSA 格式的私钥:

  • 新创建
    ssh-keygen -t rsa -b 4096 -m PEM
    
  • 转换现有文件格式
    ssh-keygen -p -m PEM -f ~/.ssh/id_rsa
    

在更新完密钥后,可能需要重启Matlab 才能最终解决问题。在使用其他用户身份运行Matlab 时,也有可能需要对其他用户的~/.ssh/id_rsa 做同样的操作。

来源:https://ww2.mathworks.cn/matlabcentral/answers/494543-why-do-i-receive-an-auth-fail-error-when-interacting-with-a-git-remote-over-ssh-in-matlab-or-why-d

posted @ 2020-09-10 09:39  逗苗  阅读(579)  评论(0)    收藏  举报