我正在使用git管理我的一个项目。每当我尝试推送到远程仓库时,git会在一个X窗口中提示我输入密码,因此如果我尝试通过ssh登录到计算机并推送代码,我还必须进行X窗口转发才能使该窗口出现在我的屏幕上。
有没有可能让git在终端本身提示我输入密码呢?
@Screwtape 在他的回答中(点此查看)部分地回答了这个问题。如果你查看这个页面,它也显示了同样的问题(在更大的问题中),但它还说明了如何解决这个错误。
当你通过SSH登录到想要运行git命令的计算机时,请尝试:
$ unset SSH_ASKPASS
ssh
手册中说:
通常情况下,当您ssh到远程主机时,ssh会清除如果ssh没有与之关联的终端,但DISPLAY和SSH_ASKPASS已设置,则它将执行由SSH_ASKPASS指定的程序并打开一个X11窗口以读取密码。
DISPLAY
变量,以防止出现这些问题,但是您可能已经配置了ssh以传播比默认配置允许的更多环境变量。在这种情况下,请确保ssh不会将DISPLAY变量复制到远程主机(如果您需要X11转发,ssh将创建自己的新DISPLAY变量,它不需要您原来的变量)。那应该可以防止在运行git的服务器上启动ssh-askpass
。
ssh
的行为而不是git
的答案。 - Shahbaz