尝试将使用SSH克隆存储库(托管在GOGS中的示例项目放在一起,并出现以下错误:
Failed to start SSH session: Unable to exchange encryption keys
我在Windows上,密钥是使用ssh-keygen生成的,并且我引用了以下nuget包
使用以下代码,我们可以从测试位存储桶帐户中提取文件,但不能从GOGS存储库网址中提取文件(相同的密钥已上传到两个帐户)。
var co = new CloneOptions
{
CredentialsProvider = (_url, _user, _cred) => new SshUserKeyCredentials()
{
PrivateKey = @"C:\Users\username\.ssh\keygen\gen",
PublicKey = @"C:\Users\username\.ssh\keygen\gen.pub",
Passphrase = string.Empty,
Username = "git"
},
};
Repository.Clone("ssh://git@<site_url>:443/Project/Project.git ", TestPath, co);
我还要补充一点,我们可以使用各种git客户端(git exe,torrise git,gitkraken)从这两个URL进行克隆,而不会出现问题。我们也可以使用LibGit2Sharp通过https和用户名和密码进行连接。
到目前为止我已经尝试过的事情: