Bagaimana cara menonaktifkan prompt kata sandi saat melakukan git push / pull?

35

Setiap kali saya ingin pushdan / atau pulldari terminal (di Linux) saya harus memasukkan kata sandi. Bagaimana cara menghapus ini sehingga menarik dan / atau mendorong tanpa kata sandi?

pusaran angin
sumber
5
Apa protokol yang digunakan oleh alamat repo Anda? ssh? https?
VonC

Jawaban:

23

Buat pasangan kunci privat / publik untuk otentikasi tanpa kata sandi.

Untuk Linux, kunci Anda disimpan di ~/.ssh.

Jika Anda sudah memiliki file dalam ~/.sshnama itu id_rsadan id_rsa.pub, maka Anda sudah memiliki pasangan kunci. Tambahkan konten kunci publik Anda (itu id_rsa.pub) ke file ~ / .ssh / berwenang_keys repositori Git.

$ scp ~/.ssh/id_rsa.pub [email protected]:id_rsa.tmp
$ ssh [email protected]
$ cat id_rsa.tmp >> .ssh/authorized_keys

Jika Anda tidak memiliki pasangan kunci, buat pasangan dengan

$ ssh-keygen -t rsa

Baca ini untuk instruksi lebih lanjut: http://inchoo.net/tools-frameworks/how-to-generate-ssh-keys-for-git-authorization/

Jin
sumber
@ Ahlhck, tidak memikirkan itu! Akan bagus untuk mengetahui OS yang digunakan whirlwin sebelum memposting instruksi lebih lanjut.
Jin
Terima kasih untuk penunjuknya. Saya telah memperbarui pertanyaannya!
whirlwin
1
Ketika saya menjalankan perintah pertama saya mendapatkan: Anda tampaknya menggunakan ssh untuk mengkloning git: // URL. Pastikan opsi konfigurasi core.gitProxy Anda dan variabel lingkungan GIT_PROXY_COMMAND TIDAK diatur. koneksi
terputus
26

Menjalankan

git config credential.helper store

Ini akan menyimpan kredensial Anda di folder di dalam root. Anda perlu menjalankan git pull / push setelah perintah ini dan berikan nama pengguna / pwd untuk pertama kalinya. Posting ini tidak akan meminta pengguna / pwd. Detail di https://git-scm.com/docs/git-credential-store

thunderbird
sumber
4
ini harus dipilih sebagai jawaban yang benar untuk pertanyaan ini. IMO, OP ingin bertanya tentang solusi untuk httpsmenghindari harus memasukkan nama pengguna / kata sandi lagi dan lagi, tidak beralih ke sshsolusi. 1+ untuk jawaban ini.
Giang Nguyen
1
Perhatikan bahwa helper kredensial store menyimpan kata sandi pada disk yang tidak dienkripsi.
0xc0de
6

Anda juga dapat mengubah frasa sandi dan menggantinya dengan string kosong:
ssh-keygen -p

usap
sumber
3
bukankah ini sangat salah? karena tidak akan ada lagi keamanan
titus
3
Terima kasih. Ini adalah perbaikan untuk orang-orang yang memiliki pengaturan kunci SSH tetapi tidak yakin mengapa mereka masih perlu memasukkan kata sandi.
Cory Danielson
menggunakan ssh-agent adalah alternatif yang lebih aman untuk ini. superuser.com/questions/426749/ssh-agent-and-ssh-add
Jay R. Wren
1

Saya telah membuat cabang baru dan setelah itu ketika saya menarik, saya harus memasukkan nama pengguna dan kata sandi. Kemudian saya menyelesaikan masalah kloning kembali cabang dengan alamat ssh (yang ada di situs repositori yang relevan).

Sebagai contoh:

git clone [email protected]:sshare/GLE.git
rj45
sumber