在不使用X11转发的情况下使用git

3
当我在一个远程机器上尝试使用git(通过ssh连接)时,它会抱怨无法连接到我的显示器。由于我在不同的机器上使用这个ssh连接来操作screen环境,我不能使用X11转发。然而,我不想为了输入密码而使用任何图形界面。
命令: $ git pull connect localhost port 6010: Connection refused (gnome-ssh-askpass:7316): Gtk-WARNING **: cannot open display:localhost:36.0
版本: $ git --version git 版本 1.7.1
我该如何避免此处需要图形连接?

如果在该机器上执行ssh命令而没有安装git会发生什么? - undefined
1
这是可能的,我会在终端中要求输入密码。 - undefined
1个回答

1
请阅读gitcredentials(7)手册页面(您可以运行git help credentials在本地阅读)。
它解释了Git如何解决获取您凭据的问题。
特别是,GIT_ASKPASS环境变量的使用可能会对您有所帮助。
或者,您可以允许您的SSH客户端将连接转发到本地代理(保持密钥的东西),以便在远程会话中运行的Git可以使用相同的身份。当然,仅在适用的情况下使用此选项(即,身份是相同的)。在这种情况下,SSH不会尝试请求密码,因为它将由代理服务。阅读ssh_config(5)手册页面,并查找ForwardAgent配置选项。
重申一下,你的问题根源似乎在于SSH需要询问你的凭据,而你必须确保它不会这样做。因此,也许解决方案就像在远程会话中运行ssh-agent并向其添加必要的身份,然后再运行Git,或者只需确保与获取SSH凭据相关的环境变量和Git配置设置具有有意义的值。

运行 git help credentials 命令时,我得到了以下提示:没有关于 gitcredentials 的手册条目。环境变量 GIT_ASKPASS 不存在或为空。 - undefined
1
好的,我在网上阅读了相关内容。调用export SSH_ASKPASS=""; git pull可以解决这个问题。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接