2011-07-19 44 views
5

在這一刻,我已經通過gitosis添加了一個git repo。我使用的手冊是http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way如何通過ssh(gitosis)訪問git repo時包含ssh private rsa key?

  1. 我可以克隆它,並通過ssh權威性和公私營 鍵推它(在Gentoo上),但Windows用戶其使用Git擴展 不能。放置在$ HOME/.ssh中的SSH密鑰以及ssh要求輸入密碼。 也不是密碼,也不是密碼(來自專用ssh密鑰)不匹配。

  2. 管理平臺需要一個裸露的回購協議,所以我克隆回購從Gitosis的我 本地計算機上,並將其轉移到服務器(管理平臺+ GIT),然後試圖 同步像這裏顯示 http://www.redmine.org/projects/redmine/wiki/HowTo_keep_in_sync_your_git_repository_for_redmine 但它要求一個密碼!當然,我並沒有讓Apache他 自己的SSH密鑰權威性的gitosis = _ =(Apache是​​管理平臺裸 回購的所有者,因爲它通過HTTP認證訪問)

但無論如何,問題是如何訪問gitosis時使用文件中的私人ssh密鑰?

===

部分解決! ssh-keygen -t rsa生成密鑰,其名稱正好是id_rsaid_rsa.pub。 如果您運行ssh -vvv [email protected]你應該看到類似

debug1: Authentications that can continue: publickey,keyboard-interactive 
… 
debug3: authmethod_is_enabled publickey 
debug1: Next authentication method: publickey 
debug1: Offering RSA public key: [email protected] 
debug3: send_pubkey_test 
debug2: we sent a publickey packet, wait for reply 
debug1: Authentications that can continue: publickey,keyboard-interactive 
debug1: Trying private key: /home/user/.ssh/id_rsa 
debug3: no such identity: /home/user/.ssh/id_rsa 
debug1: Trying private key: /home/user/.ssh/id_dsa 
debug3: no such identity: /home/user/.ssh/id_dsa 
debug1: Trying private key: /home/user/.ssh/id_ecdsa 
debug3: no such identity: /home/user/.ssh/id_ecdsa 
debug2: we did not send a packet, disable method 
debug3: authmethod_lookup keyboard-interactive 

所以,ssh客戶都想準確的文件或將切換到下一個身份驗證方法(密碼)。現在我改名爲我的家用機上的按鍵和:

[email protected] ~ $ git clone ssh://[email protected]/reponame.git 
Cloning into reponame... 
Enter passphrase for key '/home/user/.ssh/id_rsa': 

華友世紀,它要求一個密碼!順便說一句,ШIИDOśS™用戶仍然有他們的數十個生成的密鑰的問題。

UPD

如果你使用OpenSSH,然後在〜/ .ssh您可以創建一個名爲 '配置' 文件,並把有這樣的事情:

Host mygitosisserver.com 
IdentityFile ~/.ssh/private-key-for-mygitosisserver-com 

回答

4

Windows用戶應該能夠如果他們已經定義了%HOME%環境變量,也要克隆(使用ssh),
首頁沒有默認定義。
它可以引用任何他們想要的目錄(通常,一個花費的時間比%HOMEPATH%相同)


OP user685107報告:

問題與Windows用戶是嚴格按照密鑰生成的手動解決與puttygen。在Windows maked
新的密鑰對工作正常

+0

這是因爲有git.cmd(一種在Git的擴展預初始化的)與'@if不存在 「%HOME%」 @set HOME =%HOMEDRIVE% %HOMEPATH%',所以%HOME%在git環境中設置。但是,如何導入SSH密鑰?我回到家裏,把我的ssh密鑰從工作站放到〜/ .ssh,試圖克隆'git clone ssh:// git @ my_host/gitosis-admin.git',並且提示要求輸入密碼(通常是一個窗口要求一個_passphrase_)。 – tijagi

+0

@ user685107:如果您使用密碼生成了您的私鑰,這似乎很正常。在這種情況下:http://stackoverflow.com/questions/370030/git-cant-remember-my-passphrase或http://stackoverflow.com/questions/6106137/git-enter-long-passphrase-for-every-推 – VonC

+0

當然,密鑰是用密碼生成的。但Putty使得密鑰與OpenSSH服務器不兼容。所以我在Windows™用戶的同一臺服務器上生成了它們。它們不是問題問題,除非連接始終要求輸入**密碼而不是密碼** – tijagi