当我在项目中使用libgit2sharp用ssh传输协议克隆存储库时,如
git@github.com:libgit2/libgit2sharp.git 它抛出一个异常,表示“此传输未实现。对不起”
如何使用ssh传输协议使用libgit2sharp克隆存储库?
发布于 2014-06-16 11:36:12
发布于 2017-06-18 15:11:32
不幸的是,LibGit2Sharp没有包括必要的开箱即用密码库(https://github.com/libgit2/libgit2sharp/issues/255#issuecomment-212580185)。
使用LibGit2Sharp-SSH NuGet包(叉子)。
private void Run()
{
var url = "ssh://username@gitblit.example.com/some/repository.git";
var path = @"C:\Temp\some-repository";
LibGit2Sharp.Repository.Clone(url, path, new LibGit2Sharp.CloneOptions { CredentialsProvider = MyCredentialsProvider });
}
private Credentials MyCredentialsProvider(string url, string usernameFromUrl, SupportedCredentialTypes types)
{
var sshDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".ssh");
return new LibGit2Sharp.SshUserKeyCredentials()
{
Username = usernameFromUrl,
Passphrase = string.Empty,
PublicKey = Path.Combine(sshDir, "id_rsa.pub"),
PrivateKey = Path.Combine(sshDir, "id_rsa"),
};
}https://stackoverflow.com/questions/24238999
复制相似问题