解决 Git 客户端 v2.33.1 及以上的版本或者 OpenSSH 8.8 及以上版本中可能会产生无法通过 ssh 登录 Coding 的问题。
情况描述
将本机公钥添加到 Coding 之后无法提交代码,通过ssh -T git@e.coding.net
也不能正常登录,提示Permission Denied.
。
解决方法
主要问题是加密算法被禁用,启用对应的加密算法并重新生成密钥即可。
这里分开讲,即在删除原密钥对和不删除原密钥对的两种情况。
可以删除原密钥对的场景
删除原密钥对后,在~/.ssh
文件夹下新建config
文件,按照如下样例填写:
1 | Host e.coding.net |
保存退出后重新创建密钥对即可。
不能删除原密钥对的场景
首先在~/.ssh
文件夹下新建config
文件,按照如下样例填写:
1 | Host e.coding.net |
随后新建密钥对,注意将<Your Email>
替换为你的邮箱:
1 | ssh-keygen -t ed25519 -C "<Your Email>" -f ~/.ssh/id_coding |
接下来到.ssh
文件夹中将id_coding.pub
(公钥)的内容上传至 Coding ,然后再打开上面新建的~/.ssh/config
文件,添加如下HostName
、User
和IdentityFile
的值:
1 | Host e.coding.net |
其中HostName
和User
的值是固定的,IdentityFile
则是指向刚才创建的Key文件的位置。
添加完成后再重新测试,问题解决。
1 | $ ssh -T git@e.coding.net |