git - Gitosis需要密碼,即使給出了公鑰

  显示原文与译文双语对照的内容
0 0

我遇到一些問題在配置 gitosis Archlinux

http://wiki.archlinux.org/index.php/Setting_Up_Git_ACL_Using_gitosis

我引用了這個wiki文章並成功安裝了 gitosis 。

$ pacman -U gitosis-git-20090525-1-i686.pkg.tar.gz
$ -H -u gitosis gitosis-init </tmp/id_rsa. pub

並修改了/srv/gitosis/. ssh/authorized_keys以包含我的本地 id_rsa.pub.

但是當我作為本地用戶運行 git clone 時,

$ git clone gitosis@host: gitosis-admin 。git

上面寫著

在/home/wyx/gitosis-admin/. Git/中初始化了空的Git倉庫
gitosis@ 10.132.140.73 密碼:*
致命:'gitosis-admin 。git'似乎不是一個git倉庫
致命:遠程終端意外掛斷

git clone 操作失敗。 我想知道為什麼它會在我的用戶 (/home/wyx)?的本地目錄中初始化一個空的git存儲庫,因為我已經添加了用戶的本地 id_rsa.pub 。ssh/authorized_keys,為什麼它仍然要求密碼?

时间:原作者:11个回答

0 0

創建了一個空存儲庫,因為這就是git的工作方式: 它必須先初始化一個存儲庫,然後才能將遠程對象拖入它。 不幸的是,這意味著你必須手動刪除清空存儲庫,然後再嘗試克隆。

至於克隆失敗的原因,它似乎是在為遠程存儲庫路徑使用錯誤的語法;git clone 不使用scp語法。 實際上,如果你沒有指定克隆協議,我相信它假設它是git協議而不是 ssh,這可能是它要求你輸入密碼的原因。 試試這個:

$ git clone ssh://gitosis@host/~/gitosis-admin.git
原作者:
0 0

我也面臨同樣的問題"致命: ''/gitosis-admin 。git'似乎不是一個有效的存儲庫。"搜索了很多問題,最後找到了解決方案。

實際上,gitosis用戶的默認地址是"/srv/gitosis": 就像我安裝了ubuntu伺服器 10.04的情況。

當我們寫" git clone gitosis@server.com:gitosis-admin.git", 它搜索 gitosis-admin.git 存儲庫在/srv/gitosis,/srv/gitosis. 所以當我進入裡面我發現還有另一個存儲庫命名為存儲庫由 gitosis-admin.git 庫。

所以默認情況下,gitosis-admin.git 不在默認位置。 所以我必須修改命令路徑,然後它工作得很好。

我把倉庫克隆到我的本地機器上。 我使用了以下命令:

"git clone gitosis@server.com:repositories/gitosis-admin.git" 並且它對我工作正常。

在你的案例中查看gitosis-admin目錄,我希望你能夠解決你的問題。

原作者:
0 0

這就是我解決( 在Ubuntu上) 問題的原因:

git clone gitosis@ns.home:/srv/gitosis/repositories/gitosis-admin.git
原作者:
0 0

Gitosis創建自己的authorized_keys 文件。 如果你已經有該文件,請刪除它並允許gitosis-init重新創建它。 完成後,不要弄亂文件。

原作者:
0 0

我在ubuntu上也有同樣的問題

它和它一起工作 git clone ssh://git@serverName/absolutePath/gitosis-admin.git

原作者:
0 0

通常不需要編輯 authorized_keys 。

我曾經有一個授權問題,gitosis伺服器一直問我密碼,即使我在前面放置了我的公鑰。 我意識到gitosis給我一個警告"警告:gitosis 。SSH: 密鑰庫中的SSH用戶名: " myuser@myserver。酒吧'"當我試圖提交,推動gitosis變化。

更改密鑰文件和密鑰文件名稱中的user@host部分解決了我的問題。 gitosis不喜歡上一個。

原作者:
0 0

我解決了一個類似的問題。 也許不是什麼發生在你的情況中,但你可以嘗試re-apply相同的故障排除,我做到了。

我意識到當我為一個新用戶推鍵時,我得到了這個事件,這是gitosis上的鉤子無法處理新密鑰的癥狀。

remote: Traceback (most recent call last):
remote: File"/usr/local/bin/gitosis-run-hook", line 9, in <module>
remote: load_entry_point('gitosis==0.2', 'console_scripts', 'gitosis-run-hook')()
remote: File"/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/app.py", line 24, in run
remote: return app.main()
remote: File"/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/app.py", line 38, in main
remote: self.handle_args(parser, cfg, options, args)
remote: File"/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/run_hook.py", line 81, in handle_args
remote: post_update(cfg, git_dir)
remote: File"/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/run_hook.py", line 45, in post_update
remote: config=cfg,
remote: File"/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/gitdaemon.py", line 95, in set_export_ok
remote: for (dirpath, repo, name) in walk_repos(config):
remote: File"/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/gitdaemon.py", line 72, in walk_repos
remote: assert ext == '.git'
remote: AssertionError

這個錯誤只顯示了一次 ,所以我把它當作一個短暫的失敗。

實際上,Gitosis只為我的密鑰工作,但它對我試圖支持的任何用戶都不工作。 在 ~/.ssh/authorized_keys 中,我找不到我剛才添加的用戶的公鑰。 這就是為什麼我的朋友每次嘗試克隆時都要求他輸入密碼。

我添加了調試到Gitosis配置,通過將這兩行添加到 gitosis.conf

[gitosis]
loglevel=DEBUG 

我必須不斷添加並刪除 gitosis.conf 文件中的用戶,這樣鉤子才能被再次觸發。 我的調試日誌顯示

remote: DEBUG:gitosis.gitdaemon:Deny 'syncShare'
remote: DEBUG:gitosis.gitdaemon:Walking 'legacy.d', seeing ['buildtools', 'QA_Dashboard']
remote: DEBUG:gitosis.gitdaemon:Walking 'legacy.d/buildtools', seeing ['.git', 'conf', 'scripts'] 
remote: Traceback (most recent call last): 
etc.. .

A-ha鉤"步行"通過存儲庫執行它找到了一個 .git 目錄下 legacy.d/buildtools的確切位置! assert ext == '.git' 發生。

我使用了伺服器來存儲來自其他倉庫的簡單克隆。 注意,普通克隆,不是鏡像或者裸存儲庫。 就像每個克隆的. git 目錄一樣。

Gitosis中的鉤子不知道如何處理. git 目錄。 它認為它是一個空名稱的倉庫,並中止。 一旦我清除了克隆,一切都恢復正常。

原作者:
0 0

我終於讓它像這樣工作了

git clone ssh://git@host:1337/home/git/repositories/gitosis-admin.git

1337埠ssh正在使用的位置。

原作者:
0 0

同樣的問題,在我的例子中,我有錯誤的authorized_keys 。 我一定是在某一點上搞亂了它。

原作者:
0 0

應當指出,體罰和ubuntua new機器,或者是否納入了myself夫婦有第一saw刊物》的出版物,多明尼加inright人權我領導下,利用這一問題上的立場, topath權不是絕對的。每一國際files持有人的。

我還發現了一些與用戶目錄的git主目錄相對應的路徑,這縮短了一些東西:

git@host:/var/git/repositories/project.git

向下至

git@host:repositories/project.git

再玩一點,我嘗試將項目文件從倉庫直接移入git的主目錄;現在只需要項目:

git@host:project.git

這有點亂,但我懷疑不會造成任何傷害。 將很高興知道改變,當我托管gitosis在另一個ubuntu( 舊的) 和能夠存儲庫目錄內的項目,從上面最後一個符號。

原作者:
...