web-dev-qa-db-ja.com

gitはGtk-WARNINGを生成します:ディスプレイを開けません

管理者権限のないマシンでコマンドラインを使用してリモートでプロジェクトに取り組んでおり、git Push Origin masterを実行した後、次のエラーメッセージが表示されます。

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

.git/configファイルの内容は次のとおりです。

    [core]
       repositoryformatversion = 0
       filemode = true
       bare = false
       logallrefupdates = true 
    [remote "Origin"]
       fetch = +refs/heads/*:refs/remotes/Origin/*
       url = https://[email protected]/username/repository.git 
    [branch "master"]
       remote = Origin
       merge = refs/heads/master

以前に403エラーが発生していました。コメント here に続いて、リモートURLの@記号の前にユーザー名を入れてから、Gtkエラーが発生しました。

ssh -Xを使用してマシンにログインし、プッシュしようとすると、次のエラーが表示されます。

X11 connection rejected because of wrong authentication.
(gnome-ssh-askpass:31922): Gtk-WARNING **: cannot open display:localhost:10.0

リモートのURLを[email protected]:username/repository.gitに変更すると、エラーは次のようになります。

ssh: connect to Host github.com port 22: Connection timed out
fatal: The remote end hung up unexpectedly

これを修正する方法を知っていますか?

129
John Manak

私はついに問題の解決策を発見しました。 here と説明されているように、ターミナルで次のコマンドを実行しました。

  unset SSH_ASKPASS

git Push Origin masterを実行すると、本来の方法で動作します。 .bashrcファイルに行を追加することもできます。

323
John Manak

最近、Gitバージョンが1.7.4.1であるRedHat 5マシンでこの動作を処理しました。

私はunset SSH_ASKPASSが意図しない結果をもたらさないという高い自信を持っていなかったので、別の解決策があるかどうかを見たかった。

確かに言うことはできませんでしたが、Gitのバージョンが公開されたのとほぼ同時期に この問題のパッチが作業中でした のようです。そのため、より新しいバージョンが動作を修正することを期待することは合理的であるように思えました。

そして確かにそうでした。 Gitの1.8ブランチへのアップグレードにより問題は解決しました。何らかの奇妙な理由でエラーメッセージが引き続き表示されますが、パスワードの入力を求められ、許可されます続ける。

19
eikonomega

また、ssh -Yを使用してリモートサーバーにログインして、ダイアログボックスをグラフィカルに表示することもできます。

OPと同様に、ssh -X経由のログインは機能しませんでした。プッシュしようとすると、サーバーは、X11転送なしでssh経由でログを記録するときと同じエラーメッセージ-(gnome-ssh-askpass:29241): Gtk-WARNING **: cannot open display:-を繰り返しました。これは、エラーメッセージがsshの使用からわずかに変化したため、OPがssh -Xを試行したときに報告した動作とはわずかに異なる動作です。

ただし、私にとっては、一度ssh -Yを使用してログインすると、エラーは発生せず、パスワードダイアログボックスが表示され、パスワードを入力すると、GitHubはプッシュを受け入れました。

警告として、ssh -Yは、リモートサーバーを信頼できるクライアントとして扱っているため、セキュリティの問題を引き起こす可能性があります( https://askubuntu.com/questions/35512/what-is-the-difference-between- ssh-y-trusted-x11-forwarding-and-ssh-x )。そのため、使用時には注意してください。

0
cr_dave

これらの答えはどれもうまくいきませんでした(Windows 10のCygwin経由でRHEL 6.8サーバーにsshし、RHELボックスからgithub.comリポジトリをクローンしようとしています)ので、HTTPSユーザー名ではなくSSHキーを使用してクローンしました/パスワード。例えばhttps URLではなく[email protected]:MyUsername/myproject.gitを使用しました。また、公開キーをGithubに適切にアップロードしました。この方法はうまくいきました。

注:上記のソリューションのうち、実際にはgitの1.8ブランチにアップグレードしようとしませんでした

0
johnsimer