LoginSignup
70
68

More than 5 years have passed since last update.

コンソール越しに git コマンドから Gtk-WARNING **: cannot open display と怒られた時

Posted at

以下の呪文を唱える。unset SSH_ASKPASS !

$ git pull

(gnome-ssh-askpass:11826): Gtk-WARNING **: cannot open display: 

$ echo $SSH_ASKPASS
/usr/libexec/openssh/gnome-ssh-askpass

$ unset SSH_ASKPASS
$ git pull

Password: 
Already up-to-date.

SSH_ASKPASS の利用

OpenSSHはパスワードを必要とするとき、SSH_ASKPASS に設定されたコマンドを利用します。

上の例では、GUIを必要とする gnome-ssh-askpass が指定されていたために、起動できずに失敗していたわけです。実際、GUI環境だと gnome-ssh-askpass プログラムがパスワードをキャッシュしてくれるので便利です。コンソールでログインしてる時にこの環境変数が設定されちゃってるから変だというだけで。

以下のように、こいつに適当なスクリプトを食わせて自動化を行うこともできます。

やってみました。

$ git pull

Password: 
Already up-to-date.

# git pull でパスワードが要求される

$ export SSH_ASKPASS ./git_pass.sh
$ echo "#/bin/sh" >> git_pass.sh
$ echo "echo hogehoge" >> git_pass.sh
$ chmod +x git_pass.sh

$ git pull

Already up-to-date.

# git pull でパスワードが要求されなくなった

特定の状況で便利そうだけど、うっかり多用されるとパスワード直書きしたスクリプトがいろんなところに置かれてモラルハザードを引き起こしそうですね。

70
68
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
70
68