我想用庫「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