LinuxでHTTPS経由でgithubリポジトリのクローンを作成できません


87

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

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

致命的:HTTPリクエストが失敗しました

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

Macでまったく同じ通話を問題なく行うことができます-何が欠けていますか?


クラウド上のその新鮮なワイドオープンCentOS6.3ボックス
Yarin

@Yarin:すでにこれを読んでいると思います:help.github.com/articles/https-cloning-errors最後の手段はsshを使用することだと思います。また、gitが構成されているメールを確認することもできます...役立つかどうかはわかりませんが、githubアカウントで使用しているメールに対応していることを確認してください。
greg0ire 2012

ええ-それらのどれもチェックアウトしません-文字通り私のMacターミナルからLinuxターミナルに動作中のコマンドをコピーします
Yarin

回答:


210

答えは単純でしたが、明白ではありませんでした。

の代わりに:

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

行う:

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

または(安全でない)

git clone https://username:password@github.com/org/project.git

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

私のMacでは3つの方法すべてが機能しますが、リモートLinuxボックスでは最後の2つだけが機能しました。(これを振り返ると、Macでグローバルgitユーザー名を設定したのに対し、リモートボックスでは設定しなかったためと思われますか?そうだったかもしれませんが、ユーザー名のプロンプトが表示されなかったためにつまずきました。 。)

これがどこにも文書化されているのを見たことがないので、ここにあります。


3
git config --global user.name詳細をお伝えいただきありがとうございます、それは私にとってそれでした!
GermanK 2013年

gitの1.7.10のようあなたがいることを注意します、ユーザー名の入力を求められ@JERCによると、これはもはや問題ではないはずですので、...
Yarin

私は同じ問題を抱えていました(GIT 1.7.1、CentOS5で)が、プライベートBitbucketリポジトリからバンドルをインストールする必要があったため、URLにユーザー名/ pwdを追加できませんでした(そして明らかにユーザー名とを追加しませんpw infoをcomposer.json / composer.lockに入力します)。GITでは手動で入力できなかったため、苦労して、RPM Forgeリポジトリ(guru4hp.blogspot.hu/2012/08/…)を使用してGITを更新する必要がありました。私は@muness続いガイドはこちらをご覧ください:serverfault.com/questions/448814/...
hattila

2
これは、Linuxでgit 1.7.1を使用している場合の答えです
Louie Miranda

1
1.7.10より前のものを使用する場合に適用可能
Amit G

32

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

git config --global http.sslverify false

3
BeagleBone Black with Angstromの場合、opkgはssl検証を行うために必要なバージョンを提供していないため、これが機能することがわかった唯一の選択肢です。
Josiah

1
@flickerflyステートメントは有効です。AngstromOSでビーグルボーンブラックを使用する場合にこのメソッドを使用する以外に、httpsを使用してクローンを作成する他の方法はありません。
funky81 2014年

1
Centosで動作します。ありがとうございました。
030 2014年

SSL検証を無効にするのは少し危険です。悪意のあるman-in-the-middleは、理論的には変更されたgitリポジトリを送信する可能性があります。
Mark Doliner 2014

GitLabを使用する場合もこれを行う必要がありました
Gerard

12

git 1.7.10以降を使用していることを確認してください。これで、ユーザー/パスワードの入力を正しく求めるプロンプトが表示されます。(最新バージョンはこちらからダウンロードできます)


4
同じ問題が発生しました。1.7.10にアップグレードするとgitバージョンが1.7.1になり、ユーザー/パスワードが正しく表示されます!!(バージョン1.7.1は1.7.10と同じではありません)前のバージョンを確認してください献身的に。
JERC

10

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

git remote set-url origin https://username@github.com/org/project.git

10

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

OS情報:

CentOSリリース6.5(最終版)

Linux 192-168-30-213 2.6.32-431.el6.x86_64#1SMP金11月22日03:15:09UTC 2013 x86_64 x86_64 x86_64 GNU / Linux

エラー情報:

/home/techops/pyenv/.git/に初期化された空のGitリポジトリパスワード:エラー:https://waterdrops@github.com/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 ldapshttpファイルhttpsftps scp sftp機能:GSS-IDNIPv6ラージファイルNTLMSSLlibzをネゴシエートします

デバッグ

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

  • connect()をgithub.comポート443(#0)に接続しようとしています
  • 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ユーザーエージェント: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承認:/

  • 接続が切断され、新しい接続を再試行しました

  • 接続#0を閉じる
  • このURLに別のリクエストを発行します: ' https://github.com '
  • connect()をgithub.comポート443(#0)に接続しようとしています
  • 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接続エラーカール:(35)SSL接続エラー

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

sudo yum update -y nss curl libcurl


ありがとう-これは、git1.7.1を実行しているクライアントの古い
CentOS6.6

gitlab-cirunnerでこの問題が発生しています。アップグレード後は問題なく動作します。
ISCA

6

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.repoenabled = 0enabled = 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、これらのコマンドに使用する必要があります。


本当に素晴らしい答えです!Redhat(RHEL)6.3の問題を解決しました。
最大

リポジトリファイルを手動で2回編集する代わりに(最初にエクストラを有効にしてから再度無効にする)、実行yum install --enablerepo=rpmforge-extras gitしただけです。
alleen1

6

かなりの時間が経過した後、git1.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://USERNAME@github.com/USERNAME/PROJECTNAME.git

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

USERNAME:PASSWORD@github.....

ただし、盗難を容易にするためにパスワードをクリアテキストで保存するため、これは行わないでください。

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


4

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


本日からのメッセージ:「非常に大規模なDDoS攻撃の軽減に引き続き取り組んでいます。現在、一部のユーザーはサイトを利用できますが、サイトが稼働していると確信できるまで、赤のステータスのままになります。」誰がGitHubをハッキングしますか?本当に?
BenDundee 2013

明らかにホマコフではなく、彼はDDoSの代わりにマスターにコミットします
nurettin 2013

3

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

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

例:

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

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

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