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


138

管理者権限を持たないマシンのコマンドラインを使用してリモートでプロジェクトに取り組んでおり、実行後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://username@github.com/username/repository.git 
    [branch "master"]
       remote = origin
       merge = refs/heads/master

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

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

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

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

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

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


2
sshを使用していると思います。代わりにssh -Xを使用してください。これは、パスワードのダイアログが開くしようとしている意味が、ないX.がないのでできませんでした
陽電子

ありがとう、しかし私はsshを明示的に使用git push origin masterせず、を呼び出すだけなので、あなたの言っていることを適用する方法がわかりませんか?
John Manak 2013

サーバーのどこからプッシュしているかわかりますか?どのマシンからですか?そのマシンにどのようにログインしましたか?
陽電子

1
おっとっと。ごめんなさい。私はあなたの質問を完全には読みませんでした。「URL」は、git@github.com:username/repo.gitまたはのいずれかである必要https://github.com/username/repo.gitがありますが、両方の組み合わせを使用しています。
ポジトロン

申し訳ありませんが、私はあなたが今意味していることを理解しています。を使用してマシンにログインしようとしましたssh -Xが、それも役に立ちませんでした。上記の更新された質問を参照してください。
John Manak 2013

回答:


336

ようやく問題の解決策を見つけました。ここで説明したように、ターミナルで次のコマンドを実行しました。

  unset SSH_ASKPASS

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


5
ありがとう...それは多くの時間を節約しました。祝福します
Poonam Bhatt

それをありがとう!:-)
ItayB 2015

1
ありがとう..それは私のために働いた!bitbucketからLinuxマシンにクローンを作成しようとすると、同様のエラーが発生しました。
Blesson Jose 2016

2
/etc/profile.d/gnome-ssh-askpass.sh:ちょうどそれは私のCentOS 6.7のシステムでこの変数を設定し、このスクリプトであったことを追加したい
hshib

今私は得ていますerror: RPC failed; result=22, HTTP code = 417
プミランダ

19

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

unset SSH_ASKPASS意図しない結果をもたらさないほどの自信がなかったので、別の解決策があるかどうかを確認したいと思いました。

はっきりとは言えませんが、この問題のパッチは、私たちのバージョンのGitが公開されたのと同じ頃に作成されていたようです。したがって、より新しいバージョンで動作が修正されることを期待するのは理にかなっているように思えました。

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


2
RHEL 5(CentOS 5など)の問題は/etc/profile.d/gnome-ssh-askpass.sh(openssh-askpassパッケージが所有)にあり、SSH_ASKPASS環境変数は/ usr / libexec / opensshにブラインドセットされています/ gnome-ssh-askpass。これは、Xがない場合(つまり、SSH経由でPuTTY経由でログインした場合)機能しません。このファイルの行をコメント化するだけです(ファイルを削除しないでください。削除すると、openssh-askpassパッケージの更新後に復元されます)。または、パッケージopenssh-askpassを完全に削除します(yum remove openssh-askpass)。
ミラノケルスラーガー2017年

0

これらの回答はどれも私にとってはうまくいきませんでした(Windows 10のCygwinを介してRHEL 6.8サーバーにSSHで接続し、RHELボックスからgithub.comリポジトリを複製しようとしました)。パスワード。たとえば、httpsのURLではなくgit@github.com:MyUsername / myproject.gitを使用しました。また、公開鍵をGithubに適切にアップロードしました。この方法はうまくいきました。

注:上記の解決策のうち、私は実際にはgitの1.8ブランチにアップグレードしようとしませんでした


0

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

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

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

事前の警告として、ssh -Yは、リモートサーバーを信頼されたクライアント(/ubuntu/35512/what-is-the-difference-between-ssh-y-)として扱うときに、セキュリティの問題を引き起こす可能性があります。 trusted-x11-forwarding-and-ssh-xu)。使用する際は注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.