使用没有 X11 转发的 git
Posted
技术标签:
【中文标题】使用没有 X11 转发的 git【英文标题】:Using git without X11 forwarding 【发布时间】:2015-04-29 13:08:21 【问题描述】:当我尝试在远程机器上使用 git(通过 ssh)时,它抱怨无法连接到我的显示器。由于我在不同机器的屏幕环境中使用此 ssh 连接,因此无法使用 X11 转发。但是,我不需要任何图形界面来输入我的密码。
命令:
$ git pull
连接本地主机端口 6010:连接被拒绝
(gnome-ssh-askpass:7316): Gtk-WARNING **: 无法打开显示: 本地主机:36.0
版本:
$ git --version
git 版本 1.7.1
我怎样才能在这里解决图形连接的需求?
【问题讨论】:
如果您在该机器上执行没有 git 的 ssh 命令会发生什么? 这是可能的,我被要求在终端输入密码 【参考方案1】:请阅读gitcredentials(7)
手册页(您可以运行git help credentials
在本地阅读)。
它解释了 Git 如何管理获取您的凭据的问题。
也就是说,GIT_ASKPASS
环境变量的用法您可能会感兴趣。
或者,您可以允许您的 SSH 客户端将连接转发到您的本地代理(保存您的密钥的东西),以便在远程会话中运行的 Git 可以使用相同的身份。当然,只有在适用的情况下才使用它(即身份相同)。在这种情况下,SSH 甚至不会尝试询问密码,因为它将由代理提供服务。阅读ssh_config(5)
手册页并查找ForwardAgent
配置选项。
重申一下,问题的根源似乎在于 SSH 需要询问您的凭据,而您必须确保它不会。因此,解决方案可能就像在远程会话中运行 ssh-agent
和 ssh-add
一样简单,在运行 Git 之前为其添加必要的身份,或者只是确保与获取 SSH 凭据相关的环境变量和 Git 配置设置具有有意义的值。
【讨论】:
git 帮助凭证给了我:没有手动输入 gitcredentials。环境变量 GIT_ASKPASS 不存在/为空。 好的,我上网看了一遍。致电export SSH_ASKPASS=""; git pull
即可解决问题。以上是关于使用没有 X11 转发的 git的主要内容,如果未能解决你的问题,请参考以下文章
使用最后一次 CentOS CLEAN 安装设置 X11 转发的完整教程是啥?