Git push membutuhkan nama pengguna dan kata sandi

Saya kloning repositori git dari akun Github saya ke komputer saya.

Saya ingin bekerja dengan PC dan laptop saya, tetapi dengan satu akun Github.

Ketika saya mencoba untuk mendorong atau menarik dari Github menggunakan PC saya, itu membutuhkan nama pengguna dan kata sandi, tetapi tidak ketika menggunakan laptop!

Saya tidak ingin memasukkan nama pengguna dan kata sandi setiap kali saya berinteraksi dengan sumber. Apa yang saya lewatkan di sini?

1145
03 июля '11 в 23:25 2011-07-03 23:25 TooCooL diatur pada 03 Juli '11 pada 23:25 2011-07-03 23:25
@ 20 jawaban

Kesalahan umum adalah mengkloning menggunakan default (HTTPS) bukan SSH. Anda dapat memperbaiki ini dengan masuk ke repositori Anda, mengklik "Klon atau unduh", lalu mengklik "Gunakan SSH" di atas bidang URL dan memperbarui URL sumber jarak jauh, misalnya:

 git remote set-url origin git@github.com:username/repo.git 

Ini didokumentasikan di GitHub: mengalihkan URL jarak jauh dari HTTPS ke SSH .

1653
04 июля '11 в 0:25 2011-07-04 00:25 jawabannya diberikan Tekkub 04 Juli '11 pada 0:25 2011-07-04 00:25

Otentikasi permanen dengan repositori Git,

Jalankan perintah berikut untuk mengaktifkan caching kredensial :

 $ git config credential.helper store $ git push https://github.com/repo.git Username for 'https://github.com': <USERNAME> Password for 'https://USERNAME@github.com': <PASSWORD> 

Penggunaan juga harus mengindikasikan caching yang kedaluwarsa

 git config --global credential.helper 'cache --timeout 7200' 

Setelah Anda mengaktifkan caching kredensial, itu akan di-cache selama 7200 detik (2 jam) .

209
17 февр. Jawabannya diberikan oleh Jay Patel pada 17 Feb. 2015-02-17 16:30 '15 jam 4:30 sore 2015-02-17 16:30

Saya mengalami masalah yang sama, dan solusi termudah adalah menemukan URL SSH alih-alih HTTPS:

 ssh://git@github.com/username/repo.git 

Dan bukan ini:

 https://github.com/username/repo.git 

Sekarang Anda hanya dapat memeriksa SSH Key daripada username dan password .

116
14 июня '12 в 10:19 2012-06-14 10:19 jawabannya diberikan oleh Anton Salikhmetov pada 14 Juni '12 pada 10:19 2012-06-14 10:19

Selain beralih ke SSH, Anda juga dapat menggunakan HTTPS jika Anda tidak ingin memasukkan kata sandi Anda dalam teks yang jelas. Letakkan di ~/.netrc dan tidak akan menanyakan nama pengguna / kata sandi Anda (setidaknya di Linux dan Mac):

 machine github.com login <user> password <password> 

Tambahan (lihat komentar kedua VonC): di Windows, nama file adalah %HOME%\_netrc .

Baca juga komentar VonC pertama jika Anda ingin mengenkripsi.

Tambahan lain (lihat komentar pengguna 137717 ) yang dapat Anda gunakan jika Anda memiliki git 1.7.10 atau yang lebih baru .

Unggah kata sandi github Anda ke git menggunakan asisten kredensial :

Jika Anda mengkloning repositori GitHub menggunakan HTTPS, Anda dapat menggunakan helper kredensial untuk memberi tahu git untuk mengingat nama pengguna dan kata sandi GitHub Anda setiap kali ia berbicara dengan GitHub.

Ini juga berfungsi di Linux, Mac dan Windows.

110
19 янв. jawabannya diberikan oleh rintcius 19 Jan 2013-01-19 22:08 '13 pada jam 10:08 2013-01-19 22:08

Untuk yang belum tahu yang malu dengan jawaban sebelumnya, Anda dapat melakukan:

git remote -v

yang akan menanggapi sesuatu seperti

 origin https://yourname@github.com/yourname/yourrepo.git (fetch) origin https://yourname@github.com/yourname/yourrepo.git (push) 

maka Anda dapat menjalankan perintah yang disarankan banyak orang, tetapi sekarang Anda tahu nama dan repositori Anda dari atas, sehingga Anda bisa memotong dan menempelkan nama yourname/yourrepo.git dari atas ke dalam

 git remote set-url origin git@github.com:yourname/yourrepo.git 
73
13 февр. Jawabannya diberikan oleh Davide pada 13 Februari. 2014-02-13 20:22 '14 pada 20:22 2014-02-13 20:22

Jika Anda menggunakan ssh dan kunci pribadi Anda dienkripsi dengan frasa sandi, Anda masih akan diminta untuk memasukkan kata sandi / kata sandi untuk kunci pribadi saat melakukan operasi jaringan dengan Git, seperti push , pull , dan fetch .

Gunakan ssh-gent untuk menyimpan kata sandi dan kata sandi.

Jika Anda ingin menghindari keharusan memasukkan kata sandi setiap saat, Anda dapat menggunakan ssh-agent untuk menyimpan kata sandi kata sandi Anda satu kali per sesi terminal, seperti yang saya jelaskan dalam tanggapan saya terhadap Tidak dapat membuka koneksi dengan agen otentikasi Anda :

 $ ssh-agent -k 

Seperti dijelaskan dalam panduan pengguna ssh-agent :

 -k 

Bunuh agen saat ini (ditetapkan oleh variabel lingkungan SSH_AGENT_PID).

Waktu ekstra

Selain itu, dapat mengambil parameter batas waktu opsional, seperti:

51
21 авг. jawaban diberikan oleh user456814 21 Agustus 2013-08-21 05:54 '13 pada 5:54 2013-08-21 05:54

Sumber: Pengaturan Git

Perintah berikut akan menyimpan kata sandi Anda di memori untuk sementara waktu.
(Untuk git 1.7.10 atau yang lebih baru.)

44
01 сент. jawabannya diberikan oleh Sagar Rakshe 01 sep . 2013-09-01 05:55 '13 pada 5:55 2013-09-01 05:55

Ketika Anda menggunakan https untuk git pull dan push, cukup remote.origin.url untuk proyek Anda untuk menghindari memasukkan nama pengguna (atau / dan kata sandi) setiap kali Anda mengklik.

Cara mengonfigurasi remote.origin.url :

 Format url: https: // {nama pengguna: kata sandi @} github.com/ {owner} / {repo} Parameter dalam url: * nama pengguna opsional, perlu nama pengguna untuk digunakan saat perlu otentikasi, jika ditentukan, tidak perlu memasukkan nama pengguna lagi saat perlu otentikasi, itu bukan email Anda, tidak mungkin diuraikan dengan benar, * kata sandi kata sandi opsional jika ditentukan, tidak perlu memasukkan kata sandi lagi saat perlu otentikasi, tip: ini adalah param, *  mis git config remote.origin.url https: //eric@github.com/eric/myproject

@ Perbarui - menggunakan ssh

Saya pikir menggunakan ssh adalah solusi yang lebih baik daripada https , meskipun >

>

  • Buat kunci ssh menggunakan perintah seperti linux ssh-keygen , di windows msysgit memberikan perintah serupa.
  • Simpan kunci pribadi di komputer lokal di tempat yang tepat, misalnya ~/.ssh . Dan menambahkannya ke agen ssh melalui perintah ssh-add .
  • Unggah kunci publik ke server git.
  • Ubah repositori git remote.origin.url menjadi gaya ssh , misalnya git@gitlab.com:myaccount/myrepo.git
  • Kemudian, ketika Anda menarik atau menekan, Anda tidak perlu memasukkan nama pengguna atau kata sandi.

Kiat:

  • Jika kata kunci ssh Anda memiliki frasa, Anda harus memasukkannya saat pertama kali menggunakan kunci setelah setiap restart komputer Anda secara default.

@ Perbarui - Beralih antara https dan protokol ssh .

Mengubah remote.origin.url saja sudah cukup atau Anda dapat >repo_home/.git/config untuk mengubah nilainya (misalnya, menggunakan vi di linux).

Saya biasanya menambahkan baris untuk setiap protokol dan mengomentari salah satunya menggunakan # .

misalnya

 [asal "jarak jauh"] url = git@gitlab.com: myaccount / myrepo.git # url = https: //myaccount@gitlab.com/myaccount/myrepo.git fetch = + ref / head / *: ref / remote / origin / *
28
25 дек. Jawaban diberikan oleh Eric Wang 25 Des 2013-12-25 18:42 '13 pukul 18:42 2013-12-25 18:42

Anda dapat men-cache kata sandi GitHub Anda di Git:

Cukup ikuti instruksi dari dokumentasi resmi github .

Mengikuti instruksi dari tautan di atas, Anda dapat mengklik / menarik / dari repo Anda tanpa mengetik nama pengguna / kata sandi Anda setiap saat.

15
19 дек. balasan yang diberikan oleh KM Rakibul Islam pada 19 Desember 2014-12-19 08:29 '14 pada 8:29 2014-12-19 08:29

Berikut ini pilihan lain:

Alih-alih menulis

 git push origin HEAD 

Anda bisa menulis:

 git push https://user:pass@yourrepo.com/path HEAD 

Jelas, untuk sebagian besar shell ini akan menyebabkan caching kata sandi dalam sejarah, jadi ingatlah ini.

5
24 апр. Jawaban diberikan oleh Lacho Tomov pada 24 April 2018-04-24 20:05 '18 jam 8:05 malam 2018-04-24 20:05

Bagi saya, pengeditan .git/config berfungsi dan menggunakan

 [remote "origin"] url = https://<login>:<password>@gitlab.com(...).git 

Tak perlu dikatakan bahwa ini adalah cara tidak aman untuk menyimpan kata sandi Anda, tetapi ada lingkungan / kasus di mana ini mungkin tidak menjadi masalah.

5
31 июля '16 в 21:25 2016-07-31 21:25 jawabannya diberikan oleh WoJ pada 31 Juli '16 pada 21:25 2016-07-31 21:25

Pada dasarnya Anda memiliki dua opsi.

Jika Anda menggunakan pengguna yang sama di kedua mesin, Anda perlu menyalin kunci .pub ke komputer Anda, jadi github tahu bahwa Anda adalah pengguna yang sama.

Jika Anda membuat file .pub baru untuk PC Anda dan ingin memperlakukan komputer sebagai pengguna yang berbeda, Anda harus mendaftarkan file .pub baru di situs web github.

Jika masih tidak berfungsi, mungkin karena ssh tidak dikonfigurasi dengan benar dan ssh tidak dapat menemukan lokasi kunci Anda. Coba

 ssh -vv username@github.com 

Untuk informasi lebih lanjut mengapa SSH tidak berfungsi.

4
04 июля '11 в 0:32 2011-07-04 00:32 jawabannya diberikan ralphtheninja 04 Juli '11 di 0:32 2011-07-04 00:32

Pembaruan untuk https:

Github telah meluncurkan program Windows baru yang menyimpan kredensial Anda saat Anda menggunakan HTTPS:

Untuk menggunakan:

Unduh programnya dari sini.

Setelah memulai program, itu akan mengedit file .gitconfig Anda. Periksa kembali apakah dia mengedit .gitconfig benar, jika Anda memiliki beberapa. Jika itu tidak mengubah yang benar, tambahkan berikut ini ke .gitconfig Anda

 [credential] helper = !'C:\\Path\\To\\Your\\Downloaded\\File\\git-credential-winstore.exe' 

Perhatikan jeda baris setelah [credential] . Itu perlu.

Buka klien baris perintah dan coba git push origin master sekali. Jika dia meminta kata sandi Anda, masukkan dan Anda akan selesai. Kata sandi disimpan!

4
05 апр. Membalas Varun Achar 05 Apr 2013-04-05 09:02 '13 pada 9:02 2013-04-05 09:02

Saya memiliki masalah yang sama.

jadi ubah file .git / config dari proyek saya

 url = https://github.com/<your-user-here>/<your-repo-here> 

untuk

 url = git@github.com:<your-user-here>/<your-repo-here> 

dan tambahkan kunci publik ssh ke profil git yang ada di konfigurasi.

untuk kunci publik ssh

 cat ~/.ssh/id_rsa.pub 
2
09 июня '15 в 8:42 2015-06-09 08:42 jawabannya diberikan shrikant 09 Juni '15 pukul 8:42 2015-06-09 08:42

Untuk pengguna Windows, git: Setelah menjalankan git config --global credential.helper store , jika masih meminta kata sandi, Anda sebaiknya memeriksa di mana konfigurasi ditulis. menggunakan perintah ini

git config --list --show-origin

Dalam kasus saya, secara manual edit file konfigurasi 'C: \ Program Files \ Git \ mingw64 \ etc \ gitconfig', menambahkan teks berikut, semuanya berfungsi.

[credential] helper = store

2
30 авг. jawabannya diberikan Liang 30 agustus. 2018-08-30 12:11 '18 jam 12:11 malam 2018-08-30 12:11

Anda perlu melakukan 2 >

 1) git remote remove origin 2) git remote add origin git@github.com:NuggetAI/nugget.git 

Perhatikan bahwa URL git adalah URL ssh , bukan URL https. Anda dapat memilihnya di sini.

2019

Jika kunci ssh or.netrc tidak berfungsi untuk Anda, maka solusi sederhana namun kurang aman lainnya yang dapat Anda gunakan adalah git-credential-store - Helper untuk menyimpan kredensial pada disk.

 git config --global credential.helper store 

Secara default, kredensial akan disimpan dalam ~/.git-credentials . Itu akan dibuat dan direkam.

Harap dicatat bahwa menggunakan bantuan ini akan membuat kata sandi Anda dalam bentuk yang tidak terenkripsi di disk, hanya dilindungi oleh izin sistem file. Jika ini tidak bisa menjadi pertukaran keamanan yang dapat diterima.

0
12 апр. Jawabannya diberikan rumman0786 12 Apr 2018-04-12 13:12 '18 jam 1:12 siang 2018-04-12 13:12

Inilah yang bekerja untuk saya:

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

Contoh:

 git remote set-url origin https://jsmith@github.com/jsmith/master.git 
0
09 дек. Jawabannya diberikan oleh user5854766 09 Desember. 2018-12-09 20:30 '18 pukul 20:30 2018-12-09 20:30

Seperti yang dikatakan banyak pengguna, Anda hanya perlu mengubah URL repositori git Anda dari https ke SSH.

Jika Anda belum membuat kunci SSH pada mesin Anda, maka Anda harus melakukannya.

Selain informasi tambahan, setelah melakukan perubahan ini, saya masih menerima kesalahan yang sama: "Akses ditolak".

Dalam kasus saya, masalahnya adalah saya menggunakan shell Windows untuk menjalankan perintah ngh; Karena perintah ini harus membuka undangan untuk meminta frase SSH, dan shell Windows tidak membuka permintaan seperti itu, otentikasi gagal.

Jadi, saya hanya perlu membuka shell git dan menjalankan perintah ngh di sana, memasukkan frase SSH ke dalam query setiap kali diminta, dan "voila" ... Itu hanya berfungsi dengan baik!

0
03 апр. Jawabannya diberikan oleh Thisisalexis 03 Apr. 2018-04-03 17:16 '18 jam 17:16 2018-04-03 17:16

Jika Anda menggunakan git (misalnya, git bash) di Windows (dan jika Anda tidak ingin beralih dari https ke ssh)

Anda juga dapat menggunakan https://github.com/Microsoft/Git-Credential-Manager-for-Windows

Aplikasi ini akan menyimpan nama pengguna dan kata sandi Anda ...

-1
11 июня '14 в 16:08 2014-06-11 16:08 jawabannya diberikan boly38 11 Juni '14 di 16:08 2014-06-11 16:08

Pertanyaan lain tentang tag atau ajukan pertanyaan