Saya dapat mengkloning salinan repo ini melalui HTTPS yang diautentikasi. Saya telah membuat beberapa komitmen dan ingin mendorong kembali ke server GitHub. Menggunakan Cygwin pada Windows 7 x64.
C:\cygwin\home\XPherior\Code\lunch_call>git push
Password:
error: The requested URL returned error: 403 while accessing https://MichaelDrog
[email protected]/derekerdmann/lunch_call.git/info/refs
fatal: HTTP request failed
Juga atur dengan mode verbose. Saya masih sangat bingung.
C:\cygwin\home\XPherior\Code\lunch_call>set GIT_CURL_VERBOSE=1
C:\cygwin\home\XPherior\Code\lunch_call>git push
Password:
* Couldn't find host github.com in the _netrc file; using defaults
* About to connect() to github.com port 443 (#0)
* Trying 207.97.227.239... * 0x23cb740 is at send pipe head!
* Connected to github.com (207.97.227.239) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: C:\Program Files (x86)\Git/bin/curl-ca-bundle.crt
CApath: none
* SSL connection using AES256-SHA
* Server certificate:
* subject: 2.5.4.15=Private Organization; 1.3.6.1.4.1.311.60.2.1.3=US; 1.
3.6.1.4.1.311.60.2.1.2=California; serialNumber=C3268102; C=US; ST=California; L
=San Francisco; O=GitHub, Inc.; CN=github.com
* start date: 2011-05-27 00:00:00 GMT
* expire date: 2013-07-29 12:00:00 GMT
* subjectAltName: github.com matched
* issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert High Ass
urance EV CA-1
* SSL certificate verify ok.
> GET /derekerdmann/lunch_call.git/info/refs?service=git-receive-pack HTTP/1.1
User-Agent: git/1.7.4.3282.g844cb
Host: github.com
Accept: */*
Pragma: no-cache
< HTTP/1.1 401 Authorization Required
< Server: nginx/1.0.4
< Date: Thu, 15 Sep 2011 22:44:41 GMT
< Content-Type: text/plain
< Connection: keep-alive
< Content-Length: 55
< WWW-Authenticate: Basic realm="GitHub"
<
* Ignoring the response-body
* Expire cleared
* Connection #0 to host github.com left intact
* Issue another request to this URL: 'https://[email protected]/dereker
dmann/lunch_call.git/info/refs?service=git-receive-pack'
* Couldn't find host github.com in the _netrc file; using defaults
* Re-using existing connection! (#0) with host github.com
* Connected to github.com (207.97.227.239) port 443 (#0)
* 0x23cb740 is at send pipe head!
* Server auth using Basic with user 'MichaelDrogalis'
> GET /derekerdmann/lunch_call.git/info/refs?service=git-receive-pack HTTP/1.1
Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
User-Agent: git/1.7.4.3282.g844cb
Host: github.com
Accept: */*
Pragma: no-cache
< HTTP/1.1 401 Authorization Required
< Server: nginx/1.0.4
< Date: Thu, 15 Sep 2011 22:44:41 GMT
< Content-Type: text/plain
< Connection: keep-alive
< Content-Length: 55
* Authentication problem. Ignoring this.
< WWW-Authenticate: Basic realm="GitHub"
* The requested URL returned error: 401
* Closing connection #0
* Couldn't find host github.com in the _netrc file; using defaults
* About to connect() to github.com port 443 (#0)
* Trying 207.97.227.239... * 0x23cb740 is at send pipe head!
* Connected to github.com (207.97.227.239) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: C:\Program Files (x86)\Git/bin/curl-ca-bundle.crt
CApath: none
* SSL re-using session ID
* SSL connection using AES256-SHA
* old SSL session ID is stale, removing
* Server certificate:
* subject: 2.5.4.15=Private Organization; 1.3.6.1.4.1.311.60.2.1.3=US; 1.
3.6.1.4.1.311.60.2.1.2=California; serialNumber=C3268102; C=US; ST=California; L
=San Francisco; O=GitHub, Inc.; CN=github.com
* start date: 2011-05-27 00:00:00 GMT
* expire date: 2013-07-29 12:00:00 GMT
* subjectAltName: github.com matched
* issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert High Ass
urance EV CA-1
* SSL certificate verify ok.
* Server auth using Basic with user 'MichaelDrogalis'
> GET /derekerdmann/lunch_call.git/info/refs HTTP/1.1
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
User-Agent: git/1.7.4.3282.g844cb
Host: github.com
Accept: */*
Pragma: no-cache
* The requested URL returned error: 403
* Expire cleared
* Closing connection #0
error: The requested URL returned error: 403 while accessing https://MichaelDrog
[email protected]/derekerdmann/lunch_call.git/info/refs
fatal: HTTP request failed
Ini adalah versi git dan curl yang saya miliki:
C:\Users\XPherior>git --version
git version 1.7.4.msysgit.0
C:\Users\XPherior>curl --version
curl 7.21.7 (amd64-pc-win32) libcurl/7.21.7 OpenSSL/0.9.8r zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp
smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate Largefile NTLM SSL SSPI libz
Jawaban:
Saya baru saja mendapat masalah yang sama dan baru tahu apa penyebabnya.
Github tampaknya hanya mendukung cara ssh untuk membaca & menulis repo, meskipun https way juga menampilkan 'Baca & Tulis'.
Jadi, Anda perlu mengubah konfigurasi repo pada PC Anda menjadi ssh way:
.git/config
file di bawah direktori repo Andaurl=
entri di bawah bagian[remote "origin"]
url=https://[email protected]/derekerdmann/lunch_call.git
menjadiurl=ssh://[email protected]/derekerdmann/lunch_call.git
. yaitu, ubah semua teks sebelum@
simbol menjadissh://git
config
file dan keluar. sekarang Anda dapat menggunakannyagit push origin master
untuk menyinkronkan repo Anda di GitHubsumber
.git/config
lebih sepertiurl=https://github.com/mynickname/my_repo.git
Tapi saya juga mengubahnyaurl=ssh://[email protected]/mynickname/my_repo.git
dan itu berhasilgit remote set-url
perintah. Lihat jawaban saya di bawah ini.git remote set-url <name> [email protected]:<username>/<repo>.git
Agar dapat login menggunakan
https
protokol, Anda harus terlebih dahulu mengatur kredensial autentikasi Anda ke git Remote URI :Maka Anda akan dimintai kata sandi saat mencoba
git push
.Bahkan, ini ada pada format otentikasi http. Anda juga dapat menetapkan kata sandi:
Anda harus menyadari bahwa jika Anda melakukan ini, kata sandi github Anda akan disimpan dalam plaintext di direktori .git Anda, yang jelas tidak diinginkan.
sumber
https://youruser:[email protected]/user/repo.git
meskipun tidak amanSatu tambahan kecil untuk jawaban Sean .
Alih-alih mengedit
.git/config
file secara manual, Anda dapat menggunakangit remote set-url
perintah.Dalam kasus Anda seharusnya:
Saya merasa lebih mudah dan bersih, daripada main-main dengan file-dot.
sumber
git remote set-url origin ssh://[email protected]:derekerdmann/lunch_call.git
titik dua antara github.com dan nama repoEdit
.git/config
file di bawah direktori repo AndaTemukan
url=
entri di bawah bagian[remote "origin"]
Ubah dari
url=https://github.com/rootux/ms-Dropdown.git
menjadihttps://[email protected]/rootux/ms-Dropdown.git
di mana
USERNAME
nama pengguna github Andasumber
.git/config
disetel ke ` github.com/myrepo/subproject ' .Jawaban lain yang menyarankan beralih ke SSH semacam kehilangan intinya. HTTPS didukung, tetapi Anda harus masuk dengan kata sandi GITHUB Anda, bukan kata sandi SSH Anda (yang memberi saya kesalahan yang persis sama).
Saya mengalami masalah yang sama, tetapi memastikan untuk menggunakan kata sandi GitHub saya yang sebenarnya di terminal password prompt memperbaiki solusi tanpa perubahan pada konfigurasi, atau beralih ke SSH.
Alasan penting untuk dicatat ini adalah banyak lembaga publik (seperti sekolah saya) akan memblokir SSH, tetapi mengizinkan HTTPS (yang merupakan satu-satunya alasan saya mulai mengkloning HTTPS sejak awal).
Semoga itu bisa membantu orang lain yang memiliki masalah yang sama ...
sumber
git push
saya diminta untuk au dan p dan hasilnya adalah izin ditolak .... Apakah Anda tahu apa yang saya lewatkan?Kesalahan dan resolusi yang sama aktif Mac OS X.
Semuanya berjalan dengan baik sampai saya membuat akun baru di GitHub dan mencoba mendorong
Dan mendapat kesalahan:
jarak jauh: Izin ke NEWUSER / NEWREPO.git ditolak ke OLDUSER. fatal: tidak dapat mengakses ' https://github.com/NEWUSER/NEWREPO.git/ ': URL yang diminta mengembalikan kesalahan: 403
Seharusnya diperbaiki dengan mengatur nama user. baik untuk repo global atau saat ini
Tapi ternyata tidak.
Saya memperbaikinya dengan menghapus OLDUSER yang terkait dengan GitHub dari aplikasi Keychain Access di bawah bagian Kata Sandi. Kemudian perintah push berhasil.
referensi
sumber
Jika Anda menggunakan windows, terkadang ini bisa terjadi karena Windows menyimpan kredensial untuk repo luar (dalam kasus kami github) di penyimpanannya sendiri. Dan kredensial yang disimpan di sana dapat berbeda dari yang Anda butuhkan saat ini.
Jadi untuk menghindari masalah ini, temukan github di penyimpanan ini dan hapus kredensial yang disimpan. Setelah ini, sambil mendorong git akan meminta kredensial Anda dan akan memungkinkan Anda untuk mendorong.
sumber
control panel > user accounts > credential manager > Windows credentials > Generic credentials
" detail dari posting ini: stackoverflow.com/a/37450495Ini bekerja untuk saya -:
Semoga ini bisa membantu
sumber
<username>@
sebelumnyagithub.com
dalam URL jarak jauh). Terima kasih!Saya pikir @deepwaters mendapat jawaban yang benar untuk versi yang lebih lama. URL HTTPS perlu memiliki nama pengguna. Saya memiliki git 1.7.0.4 dan
git push origin master
bahkan tidak akan meminta kata sandi sampai saya menambahkannya.sumber
Tingkatkan git Anda. GitHub telah menjawab pertanyaan ini di https://help.github.com/articles/error-the-requested-url-returned-error-403 .
sumber
Kode 403 adalah "Terlarang". Server melihat permintaan Anda dan menolaknya. Apakah Anda memiliki izin untuk mendorong ke repositori itu?
sumber
Saya sebenarnya memiliki perbaikan yang sangat sederhana untuk ini. Yang saya lakukan adalah mengedit file konfigurasi git secara berbeda setelah mengkloning repositori. URL asal remote adalah apa yang Anda perlu edit dalam file konfigurasi default Anda . Seharusnya terlihat seperti terlihat di bawah
sumber
Menemukannya. Saya mengkloning HTTPS. Menyiapkan kunci SSH publik saya, mengkloning SSH, dan mendorong SSH memperbaikinya.
sumber
Setelah ini, "Push to Git" kami bekerja dengan baik.
sumber
Cukup tambahkan nama pengguna Anda ke url seperti ini: https: //[email protected]/islam9/bootstrap-rtl
silakan periksa: http://islamkhalil.wordpress.com/2012/12/06/github-error-pushing-to-git-returning-error-code-403-fatal/
sumber
Lakukan ini untuk perbaikan sementara
git push -u https://username:[email protected]/username/repo_name.git master
sumber
Saya menghadapi kesalahan yang sama dan penyebabnya bodoh - saya tidak memiliki hak istimewa untuk berkomitmen ke repositori yang dipilih. Saya tidak tahu bahwa saya harus melakukannya
seperti yang dijelaskan dalam https://help.github.com/categories/63/articles
sumber
Bagi mereka yang memiliki izin menolak kesalahan 403 saat menggunakan ssh (menurut Xiao ) atau http url coba perintah ini
dengan hak administrator
sumber
git config --global credential.helper store
.ubah dari
untuk
Berhasil!
Jangan lupa "git" sebelum "@".
sumber
git config --global http.proxy http://proxyUsername:[email protected]:port
Kemudian gunakan perintahgit remote set-url origin
untuk mengganti alamat.Bagi siapa pun yang penasaran, mesin mac saya vs lucid vm menjalankan git 1.7.6 vs 1.7.0.4, dan repo yang sama persis dapat dipencet dari mac saya (git yang lebih baru) tetapi bukan VM
Versi ikal yang sama. Mungkin beberapa versi git lama tidak mendukung dorongan https?
sumber
url=https://[email protected]/username/repo.git
Tambahkan nama pengguna sebagai bagian dari URL dan Kesalahan ini terjadi karena perintah git memukul http alih-alih https. Jadi atur url
Setelah itu Anda akan diminta kata sandi:
sumber
Apa yang berhasil untuk saya:
Repo saya adalah garpu dan masih terhubung dengan repo orang tua.
Akan memberi tahu Anda apakah itu repo Anda atau tidak.
Memungkinkan Anda mengkonfigurasi ulang repo Anda dan kemudian memungkinkan Anda untuk mendorong.
sumber
Tidak ada jawaban di atas yang berfungsi untuk
enterprise
akun GitHub saya . Ikuti langkah-langkah ini untuk mendorong melalui cara pembuatan kunci ssh.Buat repo dengan mengunjungi akun git Anda.
Buat kunci ssh:
Salin konten file ~ / .ssh / id_rsa.pub ke kunci SSH Anda di pengaturan akun GitHub Anda. Uji kunci SSH:
Sekarang cd ke folder git clone Anda dan lakukan:
Sekarang coba edit file (coba README) dan kemudian lakukan:
Pembaruan: versi git baru tampaknya merekomendasikan untuk tidak memiliki file apa pun saat repo baru dibuat. Karenanya buatlah repo kosong.
sumber
Saya menemukan variasi saya sendiri dari masalah ini.
Masalahnya bukan mengubah protokol dari https ke ssl, tetapi sebaliknya, mengatur nama pengguna dan email global Github! (Saya mencoba untuk mendorong ke repositori pribadi.
sumber
Github memiliki halaman yang didedikasikan untuk mengatasi masalah kesalahan ini:
https://help.github.com/articles/https-cloning-errors
Dalam kasus saya ternyata menggunakan versi baru git (1.8.5.2) menyelesaikan masalah ini.
sumber
Saya memiliki masalah ini sekarang, dan ternyata file server /etc/resolver.conf saya memiliki alamat ip yang buruk. Mungkin bisa membantu orang lain.
sumber
Ini terjadi pada saya karena rekan kerja saya secara tidak sengaja menonaktifkan repositori tempat repositori ini berasal. Mungkin saja memeriksa untuk memastikan bahwa repo git (hub) asli benar-benar masih ada.
sumber
Ini bisa menjadi masalah akuntansi. Akun Github dari pemilik repo hulu (pribadi) mungkin bukan finansial. Saya pernah melihat ini di mana kartu kredit klien kedaluwarsa.
sumber
apa yang berhasil bagi saya berubah dari http ke ssh:
lalu periksa dengan
git remote -v
sumber
Saya memiliki masalah yang sama. Kasus saya adalah: Saya telah menginisialisasi git repo secara lokal sebelum saya membuatnya di github, kemudian saya mencoba menambahkan cabang jarak jauh. Saya memecahkan masalah saya dengan mengubah urutan tindakan: membuat repo di situs github, lalu memasukkannya secara lokal. Tapi itu bukan kasus mereka yang suka melakukan semua dari command line seperti saya.
sumber