2015-09-05 137 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