我正在为我的一个项目使用git.每当我试着推送到远程的回购协议,git的提示我要使用X窗口的密码,所以如果我尝试ssh到计算机,并推我也有X向前使窗口出现在我的屏幕上.
是否可以在终端本身进行git提示输入密码?
@Screwtape(至少部分)正确,在他的回答中.如果您查看此页面,它会显示相同的问题(在更大的问题中),但它也表明如何解决此错误.
当您在要运行git命令的计算机上进行SSH时,请尝试:
$ unset SSH_ASKPASS
Run Code Online (Sandbox Code Playgroud)
这会取消设置$ SSH_ASKPASS环境变量.如果然后运行要运行的git命令,它应该可以工作.它在我的windows putty终端中工作,我在这里连接到CentOS服务器.请注意,此未设置的更改不是永久性的(可能是一件好事),您需要在下次登录时重新取消设置此参数,但如果您要运行GIT脚本,则可以完成工作.
尽管有两年多以前的报道,为什么这个bug仍然存在?从这个来源,似乎Windows永远不会设置DISPLAY环境变量,因此如果它进行此检查,GIT将无法正常工作.因此省略了(显然)功能,并且@Screwtape留下的引用被正确复制,但实际上并未应用.
小智 2
这不是 git 的行为;您正在通过 SSH 推送到存储库,并且 SSH 会要求您输入密码。手册页ssh
说:
如果 ssh 没有与之关联的终端,但设置了 DISPLAY 和 SSH_ASKPASS,它将执行 SSH_ASKPASS 指定的程序并打开 X11 窗口来读取密码。
通常,当您 ssh 到远程主机时,ssh 会清除变量DISPLAY
以防止出现此类问题,但您可能已将 ssh 配置为传播比默认配置允许的更多环境变量。在这种情况下,请确保 ssh 不会将DISPLAY 变量复制到远程主机(如果您需要 X11 转发,ssh 将创建自己的新 DISPLAY 变量,它不需要您原来的变量)。这应该会阻止ssh-askpass
在运行 git 的服务器上启动。
归档时间: |
|
查看次数: |
2422 次 |
最近记录: |