首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ssh传输协议中使用libgit2sharp?

如何在ssh传输协议中使用libgit2sharp?
EN

Stack Overflow用户
提问于 2014-06-16 07:59:17
回答 2查看 6.8K关注 0票数 9

当我在项目中使用libgit2sharp用ssh传输协议克隆存储库时,如

代码语言:javascript
复制
git@github.com:libgit2/libgit2sharp.git 

它抛出一个异常,表示“此传输未实现。对不起”

如何使用ssh传输协议使用libgit2sharp克隆存储库?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-16 11:36:12

不幸的是,目前还不支持Ssh协议。此时只有git:// (只读)和http[s]://协议。

然而,通过利用libssh2库,它最终将成为现实。

订阅问题255号通知将使您了解有关此功能的最新进展。

更新:

libgit2中正在进行的一项工作(请参阅PR #2428)将帮助我们使LibGit2Sharp能够更早而不是更晚地处理ssh协议。

更新2:

PR #852正在致力于使ssh对LibGit2Sharp可用。

票数 7
EN

Stack Overflow用户

发布于 2017-06-18 15:11:32

不幸的是,LibGit2Sharp没有包括必要的开箱即用密码库(https://github.com/libgit2/libgit2sharp/issues/255#issuecomment-212580185)。

使用LibGit2Sharp-SSH NuGet包(叉子)。

代码语言:javascript
复制
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"),
    };
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24238999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档