2015-09-05 134 views
0

我一直在嘗試emacs作爲服務器,並遇到了magit的問題。我們有一個Gitlab服務器在工作,當我嘗試使用magit進行推送或拉取時,我受到密碼挑戰。從命令行使用git時不會發生這種情況,更重要的是,如果我「直接」運行emacs(而不是使用守護進程運行emacsclient),則不會發生這種情況。 我應該提到,我在Ubuntu 15.04上運行,並且正在使用emacs 25.emacs守護進程和magit

我想知道是否有其他人遇到了這種行爲?或者可以指點我一個補救辦法?感謝您的關注!

回答

1

現有答案中的建議讓我找到了解決方案。我希望這會對遇到這個問題的其他人有所幫助。我使用systemd啓動emacs的守護進程,它原來,我需要在emacsd.service文件附加指令:

[Service] 
... 
Environment=SSH_AUTH_SOCK=%t/keyring/ssh 
... 

所以,感謝線索 - 他們把我在正確的軌道上找到答案。

+0

Noce被捕,比我的答案更精確。 +1 – VonC

1

它取決於用於上游repo url的協議。

通常,當ssh在$HOME/.ssh中找不到適當的私鑰/公鑰時,會詢問密碼。
$HOME在服務作爲守護進程啓動時可能不同,而不是由用戶啓動。

所以如果上游的GitLab倉庫被一個ssh url訪問,那麼這將解釋兩次嘗試之間的區別。

+0

$ HOME的值可能存在差異暗示。不過,有趣的是,我預計會受到影響的其他事情(如我的.emacs.d目錄的內容)似乎正常工作。 – user888379

1

你不是第一個有這個問題的人說至少。這就是爲什麼它在常見問題解答中提到的原因,它會將您帶到Pushing with Magit from Windows

總結了各種選項幷包含故障排除說明。但仍然不是每個人都能夠弄清楚(或者提供足夠準確的信息供我們從遠處進行診斷),所以核心貢獻者編寫了一個軟件包,即使在配置不充分的系統上也能正常工作。該包也在該頁面上提及。

+0

感謝您的鏈接。我不確定它與我的情況有關。我在LInux上運行,當我沒有連接到emacs服務器時,emacs/magit工作正常。 – user888379