管理者権限のないマシンでコマンドラインを使用してリモートでプロジェクトに取り組んでおり、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
これを修正する方法を知っていますか?
私はついに問題の解決策を発見しました。 here と説明されているように、ターミナルで次のコマンドを実行しました。
unset SSH_ASKPASS
git Push Origin master
を実行すると、本来の方法で動作します。 .bashrc
ファイルに行を追加することもできます。
最近、Gitバージョンが1.7.4.1であるRedHat 5マシンでこの動作を処理しました。
私はunset SSH_ASKPASS
が意図しない結果をもたらさないという高い自信を持っていなかったので、別の解決策があるかどうかを見たかった。
確かに言うことはできませんでしたが、Gitのバージョンが公開されたのとほぼ同時期に この問題のパッチが作業中でした のようです。そのため、より新しいバージョンが動作を修正することを期待することは合理的であるように思えました。
そして確かにそうでした。 Gitの1.8ブランチへのアップグレードにより問題は解決しました。何らかの奇妙な理由でエラーメッセージが引き続き表示されますが、パスワードの入力を求められ、許可されます続ける。
また、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 )。そのため、使用時には注意してください。
これらの答えはどれもうまくいきませんでした(Windows 10のCygwin経由でRHEL 6.8サーバーにsshし、RHELボックスからgithub.comリポジトリをクローンしようとしています)ので、HTTPSユーザー名ではなくSSHキーを使用してクローンしました/パスワード。例えばhttps URLではなく[email protected]:MyUsername/myproject.gitを使用しました。また、公開キーをGithubに適切にアップロードしました。この方法はうまくいきました。
注:上記のソリューションのうち、実際にはgitの1.8ブランチにアップグレードしようとしませんでした