我想用库“libgit2sharp”通过一个SSH密钥克隆一个仓库...我找不到任何东西......我可以通过“https “但我想要做的是使用SSH密钥。真的不清楚它是否得到支持。用SSH和libgit2sharp克隆一个git仓库
2
A
回答
2
截至目前,有一个使用libssh2库的SSH实现。你可以在这里找到LibGit2Sharp - SSH
你应该为你添加libgit2sharp-ssh依赖项目才能使用它。它可以作为一个金块:https://www.nuget.org/packages/LibGit2Sharp-SSH
免责声明:我还没有找到正式的使用指南呢,我知道什么是从通过LibGit2论坛中与其他用户问题的点点滴滴放在一起。
从我的理解,你需要使用任何SshUserKeyCredentials或SshAgentCredentials使用SSH进行身份验证,以创建一个新的证书,并把它传递作为CloneOptions一部分。
在我使用示例代码“混帐”作为用户,仅仅是因为遥控器将会像[email protected]:项目/ reponame.git,在这种情况下,“混帐”是正确的用户,否则你会得到一个错误说
$exception {"username does not match previous request"}LibGit2Sharp.LibGit2SharpException
代码克隆与SSH回购应该是类似的东西:
public CloneOptions cloningSSHAuthentication(string username, string path_to_public_key_file, string path_to_private_key_file)
{
CloneOptions options = new CloneOptions();
SshUserKeyCredentials credentials = new SshUserKeyCredentials();
credentials.Username = username;
credentials.PublicKey = path_to_public_key_file;
credentials.PrivateKey = path_to_private_key_file;
credentials.Passphrase = "ssh_key_password";
options.CredentialsProvider = new LibGit2Sharp.Handlers.CredentialsHandler((url, usernameFromUrl, types) => credentials) ;
return options;
}
public CloneOptions cloneSSHAgent(string username){
CloneOptions options = new CloneOptions();
SshAgentCredentials credentials = new SshAgentCredentials();
credentials.Username = username;
var handler = new LibGit2Sharp.Handlers.CredentialsHandler((url, usernameFromUrl, types) => credentials);
options.CredentialsProvider = handler;
return options;
}
public void CloneRepo(string remotePath, string localPath){
CloneOptions options = cloningSSHAuthentication("git", "C:\\folder\\id_rsa.pub", "C:\\folder\\id_rsa");
Repository.Clone(remotePath, localPath, options);
}
相关问题
- 1. 使用SSH克隆git仓库
- 2. SSH错误克隆Git仓库
- 3. 克隆git仓库
- 4. 用ssh用用户名和密码克隆git仓库
- 5. 创建一个git仓库克隆
- 6. 不是一个Git仓库克隆
- 7. 而克隆一个Git仓库
- 8. LibGit2Sharp和TFS Git仓库
- 9. 克隆git仓库失败
- 10. 克隆git仓库失败
- 11. 运行克隆Git仓库
- 12. 克隆git仓库的.git目录
- 13. 如何用GitLab克隆git仓库
- 14. 合并两个git仓库,一个一个git-CVS克隆,一个GIT中 - svn的克隆
- 15. 如何克隆一个git流风格的git仓库?
- 16. 的Git可以克隆一个纯仓库到另一个纯仓库
- 17. 使用ssh克隆Git Repositroy
- 18. 克隆私人git仓库的Dockerfile
- 19. 无法从github克隆git仓库
- 20. 使团队克隆git仓库
- 21. 克隆Git仓库通过ANT
- 22. Python的方式克隆git仓库
- 23. 错误:克隆裸git仓库
- 24. 如何从VM中克隆Git仓库?
- 25. 将Git仓库克隆到iPhone中
- 26. 克隆一个Git仓库与另一名
- 27. 如何从第二个git仓库中删除克隆的仓库仓库?
- 28. 克隆一个CVS仓库客户端
- 29. 从git仓库克隆并提交到新仓库
- 30. 将克隆的git仓库转换成分叉的仓库
的[如何使用ssh-传输协议使用libgit2sharp可能的复制? ](H T tp://stackoverflow.com/questions/24238999/how-to-use-libgit2sharp-with-ssh-transport-protocol) – SushiHangover
嗯,我在发布之前看到这篇文章,但它不是很清楚。我从它检查了公关,事实上它看起来像他们一直在SSH支持,但我找不到它。我检查了其他公共关系,但它似乎与外部的馆藏有问题,以支持SSH,并没有说它究竟是否支持或不这样... – ssougnez
你是建立自己的libgit2共享lbrary? – SushiHangover