防止git弹出gnome密码框

Posted

技术标签:

【中文标题】防止git弹出gnome密码框【英文标题】:Prevent git from popping up gnome password box 【发布时间】:2014-02-20 18:23:16 【问题描述】:

我以前没有问过这种性质的问题,所以这可能不是正确的网站。

我在连接到热键的下拉模式下使用 xfce 终端。当另一个窗口变为活动状态时它会关闭,这很好。然而,不好的是,当我使用 git 并将其拉入或推送到 https url 时,它会弹出一个有趣的框来询问我的密码,而不是让我直接在命令行上输入密码。

通常我会用谷歌搜索来寻找答案,但遗憾的是,大多数人都试图让 git 完全停止询问密码而不是阻止对话框,所以这对我来说很难用谷歌搜索(相信我;我已经尝试了几个月,当我感到厌烦时,我断断续续地尝试)。

如何防止 git 弹出任何图形窗口以显示密码之类的内容? Git 说它使用/usr/lib/seahorse/seahorse-ssh-askpass 来询问密码,所以如果有一些配置选项可以阻止它使用它(或具有同等效果),那就太好了。

非常感谢您的帮助。

【问题讨论】:

我认为这个问题适合 Stack Overflow,因为它是关于开发人员工具 (git)。 【参考方案1】:

似乎 git 可能正在使用 GIT_ASKPASSSSH_ASKPASS 环境变量来确定它是否应该使用单独的程序来提示输入密码。

尝试运行unset GIT_ASKPASSunset SSH_ASKPASS。现在尝试从 git 存储库推送或拉取。如果可行,请将适当的命令添加到 .bashrc.zshrc 或您在 shell 启动时用来运行命令的任何文件。

您还可以使用git config --global core.askpass YOUR_PREFERRED_PROMPT_COMMAND 覆盖git 的core.askpass 设置的值。

相关信息来自git-config man page:

core.askpass

可以告诉一些交互式询问密码的命令(例如 svn 和 http 接口)使用通过以下方式提供的外部程序 这个变量的值。可以被 GIT_ASKPASS 覆盖 环境变量。如果未设置,则回退到 SSH_ASKPASS 环境变量,或者,如果失败,一个简单的密码 迅速的。外部程序应给出适当的提示,如 命令行参数并在其 STDOUT 上写入密码。

原文出处:http://kartzontech.blogspot.com/2011/04/how-to-disable-gnome-ssh-askpass.html

【讨论】:

如果设置了 SSH_ASKPASS 有没有办法告诉 git 忽略它?我的意思是,如果 SSH_ASKPASS 未设置,会调用什么程序? 它会检查GIT_ASKPASS,然后是core.askPass,然后是SSH_ASKPASS,然后它会在终端上提示您。您的图形环境可能会将这些变量之一设置为其默认凭据帮助程序之一。查看此手册页以获取更多信息:kernel.org/pub/software/scm/git/docs/gitcredentials.html 我知道,我的意思是,如果没有设置这些变量,会调用什么?因为您可以将其添加到core.askpass,而忽略SSH_ASKPASS 如果您在 Windows 上并且只想为此禁用 GUI,请运行 git config --global core.askpass ""【参考方案2】:

在运行可能需要密码的 git 命令时取消设置 DISPLAY,并且 gnome-ssh-askpass 将使用文本终端提示符。

例如:

DISPLAY= git push

【讨论】:

以上是关于防止git弹出gnome密码框的主要内容,如果未能解决你的问题,请参考以下文章

python消息提示框弹出两个解决

python消息提示框弹出两个解决

python消息提示框弹出两个解决

如何将组合框弹出窗口与左下 wpf 对齐?

html 加载微调框弹出叠加层

swing 实现点击文本框弹出选择日期的界面