web-dev-qa-db-ja.com

LinuxでHTTPS経由でGitHubリポジトリをクローンできない

CentOSボックスで簡単なgit clone https://github.com/org/project.gitを実行しようとしていますが、次のようになります:

エラー:要求されたURLは、アクセス中にエラーを返しました: https://github.com/org/project.git/info/refs

致命的:HTTP要求が失敗しました

ユーザー名/パスワードの入力を求められることはなく、失敗します。

Macでまったく同じ呼び出しを問題なく行うことができます。何が欠けていますか?

83
Yarin

答えは簡単でしたが、明らかではありませんでした。

代わりに:

git clone https://github.com/org/project.git

do:

git clone https://[email protected]/org/project.git

または(安全でない)

git clone https://username:[email protected]/org/project.git

(後者の場合、パスワードはps u -u $youを実行することでマシン上の他のユーザーに表示され、デフォルトではシェルの履歴にクリアテキストで表示されることに注意してください)

3つの方法はすべて私のMacで動作しますが、最後の2つの方法だけがリモートLinuxボックスで動作しました。 (これを考えると、おそらく、私は グローバルgitユーザー名 をMacにセットアップしていたのに対して、リモートボックスではそうしなかったのでしょうか?ユーザー名が私をつまずかせました...)

これはどこにも文書化されていないので、ここにあります。

206
Yarin

Ssl verifyを手動で無効にして、再試行できます。 :)

git config --global http.sslverify false
32
Chu-Siang Lai

Git 1.7.10以降を使用していることを確認してください。ユーザー/パスワードを正しく入力するように求められます。 (最新バージョンをダウンロードできます こちら

12
JERC

1.7.1 gitバージョンで動作するようにユーザー名を指定する必要がありました。

git remote set-url Origin https://[email protected]/org/project.git
10
Andrius

私は同じ問題に遭遇しました、エラーメッセージとOS情報は次のとおりです

OS情報:

CentOSリリース6.5(最終)

Linux 192-168-30-213 2.6.32-431.el6.x86_64#1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

エラー情報:

/home/techops/pyenv/.git/の初期化された空のGitリポジトリパスワード:エラー:アクセス中 https://[email protected]/pyenv/pyenv.git/info/refs

致命的:HTTP要求が失敗しました

git&curlバージョン情報

git info:gitバージョン1.7.1

curl 7.19.7(x86_64-redhat-linux-gnu)libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2プロトコル:tftp ftp telnet dict ldap ldaps http file https ftps scp sftp機能:GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

デバッグ

$ curl --verbose https://github.com

  • Github.comポート443(#0)にconnect()しようとしています
  • 13.229.188.59 ...接続しようとしています
  • Github.com(13.229.188.59)ポート443(#0)に接続
  • Certpathを使用したNSSの初期化:sql:/ etc/pki/nssdb
  • CAfile:/etc/pki/tls/certs/ca-bundle.crt CApath:なし
  • NSSエラー-12190
  • TLSハンドシェイクのエラー、SSLv3の試行... GET/HTTP/1.1 User-Agent:curl/7.19.7(x86_64-redhat-linux-gnu)libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2ホスト:github.com Accept:/

  • 接続が終了し、新しい接続を再試行しました

  • 接続を閉じる#0
  • 次のURLに別のリクエストを発行します: ' https://github.com '
  • Github.comポート443(#0)にconnect()しようとしています
  • 13.229.188.59 ...接続しようとしています
  • Github.com(13.229.188.59)ポート443(#0)に接続
  • 以前のハンドシェイクの失敗によりTLSが無効
  • CAfile:/etc/pki/tls/certs/ca-bundle.crt CApath:なし
  • NSSエラー-12286
  • 接続を閉じる#0
  • SSL接続エラーcurl:(35)SSL接続エラー

curl、libcurl、およびnssをアップグレードした後、git cloneが再び正常に機能するので、ここにあります。更新コマンドは次のとおりです

Sudo yum update -y nss curl libcurl

8
Warrren Liu

しばらくしてからgit 1.7.1を動作させることができました。

最初に、プルできるようにSSLを無効にする必要がありました。

git config --global http.sslverify false

その後、私はクローンを作ることができました

git clone https://github.com/USERNAME/PROJECTNAME.git

その後、追加してコミットした後、私はプッシュバックできませんでした。だから私はやった

git remote -v

Origin  https://github.com/USERNAME/PROJECTNAME.git (fetch)
Origin  https://github.com/USERNAME/PROJECTNAME.git (Push)

プルおよびプッシュアドレスを表示するには:

これらはUSERNAME @で変更する必要があります

git remote set-url Origin https://[email protected]/USERNAME/PROJECTNAME.git

パスワードの入力を求められますが、パスワードを追加できます

USERNAME:PASSWORD@github.....

ただし、盗難を防ぐためにパスワードを平文で保存するので、そうしないでください。

ファイアウォールの制限のためにSSHを動作させることができなかったため、この組み合わせを行う必要がありました。

6
Heine Nørby

JERCが言ったように、gitの更新バージョンがあることを確認してください。デフォルト設定のみを使用している場合、gitをインストールしようとすると、バージョン1.7.1が取得されます。 getの最新バージョンを手動でダウンロードしてインストールする以外に、新しいリポジトリをyumに追加してこれを実現することもできます。

tecadmin.net から:

Rpmforgeリポジトリをダウンロードしてインストールします。

# use this for 64-bit
rpm -i 'http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm'
# use this for 32-bit
rpm -i 'http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm'

# then run this in either case
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

次に、rpmforge-extrasを有効にする必要があります。 /etc/yum.repos.d/rpmforge.repoを編集し、enabled = 0の下でenabled = 1[rpmforge-extras]に変更します。ファイルは次のようになります。

### Name: RPMforge RPM Repository for RHEL 6 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

[rpmforge-extras]
name = RHEL $releasever - RPMforge.net - extras
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/extras
mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge-extras
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-extras
enabled = 0 ####### CHANGE THIS LINE TO "enabled = 1" #############
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

[rpmforge-testing]
name = RHEL $releasever - RPMforge.net - testing
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/testing
mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge-testing
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-testing
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

これを実行したら、gitを更新できます

yum update git

なぜかはわかりませんが、rpmforge-extrasを無効にして(enabled = 0に戻す)、yum clean allを実行することを提案します。

ほとんどの場合、これらのコマンドにはSudoを使用する必要があります。

6
Rob Watts

これはこの質問に対する最も愚かな答えですが、 GitHubのステータスを確認してください 。これは私を手に入れました:)

4
BenDundee

同じ問題とエラーがありました。私の場合は、https_proxyが設定されていませんでした。 https_proxy環境変数を設定すると、問題が修正されました。

$ export https_proxy=https://<porxy_addres>:<proxy_port>

例:

$ export https_proxy=https://my.proxy.company.com:8000

これが誰かを助けることを願っています。

2