emacs守护程序和magit

emacs守护程序和magit,git,emacs,daemon,magit,Git,Emacs,Daemon,Magit,我一直在尝试将emacs用作服务器,但在magit方面遇到了问题。我们有一个Gitlab服务器在工作,当我尝试使用magit进行推送或拉送时,我会被要求输入密码。当我从命令行使用git时不会发生这种情况,更重要的是,如果我“直接”运行emacs(与使用守护进程运行EmacClient相反),也不会发生这种情况。 我应该提到我运行的是Ubuntu 15.04,我使用的是emacs 25 我想知道是否有其他人有过这种行为?或者你能给我指个补救办法吗?谢谢你的关注 这取决于上游回购url使用的协议 通

我一直在尝试将emacs用作服务器,但在magit方面遇到了问题。我们有一个Gitlab服务器在工作,当我尝试使用magit进行推送或拉送时,我会被要求输入密码。当我从命令行使用git时不会发生这种情况,更重要的是,如果我“直接”运行emacs(与使用守护进程运行EmacClient相反),也不会发生这种情况。 我应该提到我运行的是Ubuntu 15.04,我使用的是emacs 25


我想知道是否有其他人有过这种行为?或者你能给我指个补救办法吗?谢谢你的关注

这取决于上游回购url使用的协议

通常,当ssh在
$HOME/.ssh
中找不到正确的私钥/公钥时,会询问密码
当服务作为守护进程启动时,
$HOME
可能与由用户启动时有所不同


因此,如果上游GitLab repo是通过ssh url访问的,这将解释两次尝试之间的差异。

这取决于上游repo url使用的协议

通常,当ssh在
$HOME/.ssh
中找不到正确的私钥/公钥时,会询问密码
当服务作为守护进程启动时,
$HOME
可能与由用户启动时有所不同


因此,如果上游GitLab repo是通过ssh url访问的,那么这就可以解释这两次尝试之间的区别。

至少可以说,您不是第一个遇到此问题的人。这就是为什么FAQ中会提到它,它会带你去


它总结了各种选项并包含故障排除说明。但仍然不是每个人都能弄明白(或者提供足够准确的信息让我们从远处进行诊断),因此一位核心贡献者编写了一个包,使这项工作即使在配置不足的系统上也能运行。该页面上也提到了该软件包。

至少可以说,你不是第一个对此有问题的人。这就是为什么FAQ中会提到它,它会带你去


它总结了各种选项并包含故障排除说明。但仍然不是每个人都能弄明白(或者提供足够准确的信息让我们从远处进行诊断),因此一位核心贡献者编写了一个包,使这项工作即使在配置不足的系统上也能运行。该页面上也提到了该软件包。

现有答案中的建议让我找到了解决方案。我希望它能对遇到这个问题的其他人有所帮助。我正在使用systemd启动emacs守护进程,结果发现我需要在emacsd.service文件中添加一条指令:

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

因此,感谢这些线索——它们让我找到了正确的答案。

现有答案中的建议让我找到了解决方案。我希望它能对遇到这个问题的其他人有所帮助。我正在使用systemd启动emacs守护进程,结果发现我需要在emacsd.service文件中添加一条指令:

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

因此,感谢您提供的线索-他们让我找到了正确的答案。

$HOME的价值可能存在差异,这很有启发性。不过,有趣的是,我预期会受到影响的其他东西(如.emacs.d目录的内容)似乎工作正常。不过,有趣的是,我预期会受到影响的其他内容(如.emacs.d目录的内容)似乎工作正常。感谢链接。我不确定这是否与我的处境有关。我在LInux上运行,当我没有连接到emacs服务器时,emacs/magit可以正常工作。谢谢链接。我不确定这是否与我的处境有关。我在LInux上运行,当我没有连接到emacs服务器时,emacs/magit工作正常。Noce catch,比我的答案更准确+1没有接球,比我的答案更准确+1.