Saya ingin menggunakan push dan pull secara otomatis di GitExtension , tanpa memasukkan pengguna dan kata sandi saya di prompt, setiap saat.
Jadi bagaimana saya bisa menyimpan kredensial saya di git?
git
credentials
git-config
Edson Cezar
sumber
sumber
Jawaban:
Lari
kemudian
berikan nama pengguna dan kata sandi dan perincian itu akan diingat kemudian. Kredensial disimpan dalam file pada disk, dengan izin disk "hanya dapat dibaca / ditulis pengguna" tetapi masih dalam plaintext.
Jika Anda ingin mengubah kata sandi nanti
Akan gagal, karena kata sandi salah, git kemudian menghapus kata sandi + pengguna yang menyinggung dari
~/.git-credentials
file, jadi sekarang jalankan kembaliuntuk memberikan kata sandi baru sehingga berfungsi seperti sebelumnya.
sumber
Anda dapat menggunakan
git config
untuk mengaktifkan penyimpanan kredensial di git.Saat menjalankan perintah ini, pertama kali Anda menarik atau mendorong dari repositori jarak jauh, Anda akan ditanya tentang nama pengguna dan kata sandi.
Setelah itu, untuk komunikasi selanjutnya dengan repositori jarak jauh Anda tidak perlu memberikan nama pengguna dan kata sandi.
Format penyimpanan adalah
.git-credentials
file, disimpan dalam plaintext.Anda juga dapat menggunakan bantuan lain untuk
git config credential.helper
, yaitu cache memori:yang membutuhkan opsional
timeout parameter
, menentukan berapa lama kredensial akan disimpan dalam memori. Menggunakan helper, kredensial tidak akan pernah menyentuh disk dan akan dihapus setelah batas waktu yang ditentukan. Thedefault
nilainya900 seconds (15 minutes).
PERINGATAN : Jika Anda menggunakan metode ini, kata sandi akun git Anda akan disimpan dalam
plaintext
format, diglobal .gitconfig file
, misalnya di linux,/home/[username]/.gitconfig
Jika ini tidak diinginkan untuk Anda, gunakan a
ssh key
untuk akun Anda.sumber
git config credential.helper cache
kata sandi tidak akan disimpan ke file, hanya disimpan dalam memori. Lihat: git-scm.com/docs/git-credential-cacheMetode yang Disarankan dan Aman: SSH
Buat kunci Github ssh. Pergi ke github.com -> Pengaturan -> Kunci SSH dan GPG -> Kunci SSH Baru. Sekarang simpan kunci pribadi Anda ke komputer Anda.
Kemudian, jika kunci pribadi disimpan sebagai id_rsa di direktori ~ / .ssh / , kami menambahkannya untuk otentikasi:
Metode yang Lebih Aman: Caching
Kita dapat menggunakan git-credential-store untuk menembolok nama pengguna dan kata sandi kita untuk jangka waktu tertentu. Masukkan saja yang berikut di CLI Anda (terminal atau command prompt):
Anda juga dapat mengatur periode waktu habis (dalam detik) seperti:
Metode Yang Kurang Aman
Git-credential-store juga dapat digunakan, tetapi menyimpan kata sandi dalam file teks biasa di disk Anda seperti itu:
Jawaban yang Sudah Kadaluarsa - Cepat dan Tidak Aman
Ini adalah metode penyimpanan kata sandi yang tidak aman dalam teks biasa. Jika seseorang menguasai komputer Anda, kata sandi Anda akan terbuka!
Anda dapat mengatur nama pengguna dan kata sandi Anda seperti ini:
sumber
Nyalakan bantuan kredensial sehingga Git akan menyimpan kata sandi Anda di memori untuk beberapa waktu:
Di Terminal, masukkan yang berikut ini:
Secara default, Git akan men-cache kata sandi Anda selama 15 menit.
Untuk mengubah batas waktu cache kata sandi default, masukkan yang berikut ini:
Dari Bantuan GitHub
sumber
cache
bagian denganstore
. Jadi, perintah penuh akan:git config --global credential.helper store
. Perhatikan bahwa ini akan menyimpan kata sandi Anda dalam file teks terbuka (tanpa enkripsi apa pun, demikian dikatakan).--timeout
parameter?Anda dapat mengedit
~/.gitconfig
file untuk menyimpan kredensial AndaYang seharusnya sudah
Anda harus menambahkan di bagian bawah file ini.
Alasan saya merekomendasikan opsi ini adalah karena bersifat global dan jika suatu saat Anda harus menghapus opsi, Anda tahu ke mana harus pergi dan mengubahnya.
HANYA GUNAKAN OPSI INI DALAM KOMPUTER PRIBADI ANDA.
Lalu ketika Anda menarik | klon | masukkan kata sandi git Anda, secara umum kata sandi akan disimpan dalam
~/.git-credentials
formatWHERE DOMAIN.XXX BISA MENJADI GITHUB.COM | BITBUCKET.ORG | LAIN
Lihat Documents
Mulai ulang terminal Anda.
sumber
Masukkan kredensial Anda di Url seperti ini:
Anda dapat menyimpannya seperti ini:
... contoh untuk menggunakannya :
Sekarang adalah Daftar alias url:
git remote -v
... dan perintah untuk menghapus salah satunya:
git remote rm myrepo
sumber
[email protected]:Username/myRepo.git
https
, tidakssh
, jadi solusi seperti ini dapat berguna di sana. Perhatikan juga bahwa Anda dapat menggunakan token-oauth, yang sedikit lebih aman daripada kata sandi GitHub Anda.Untuk pengaturan global, buka terminal (dari mana saja) jalankan yang berikut:
Dengan itu, setiap repo git lokal yang Anda miliki di komputer Anda akan menggunakan informasi itu.
Anda dapat mengkonfigurasi secara individual untuk setiap repo dengan melakukan:
jalankan yang berikut ini:
Hanya memengaruhi folder itu (karena konfigurasi Anda bersifat lokal).
sumber
--local
tag tetapi sekali lagi tidak ada yang terjadiAnda dapat menggunakan git-credential-store untuk menyimpan kata sandi Anda yang tidak dienkripsi di disk, hanya dilindungi oleh izin sistem file.
Contoh
Anda dapat memeriksa kredensial yang disimpan dalam file
~/.git-credentials
Untuk info lebih lanjut kunjungi git-credential-store - Membantu menyimpan kredensial pada disk
sumber
Anda akan lebih aman jika menggunakan otentikasi SSH daripada otentikasi nama pengguna / kata sandi.
Jika Anda menggunakan Mac, otentikasi klien SSH diintegrasikan ke dalam gantungan kunci MacOS. Setelah Anda membuat kunci SSH, ketikkan ke terminal Anda:
Ini akan menambahkan kunci pribadi SSH ke gantungan kunci MacOS. Klien git akan menggunakan ssh ketika terhubung ke server jarak jauh. Selama Anda telah mendaftarkan kunci publik ssh Anda dengan server, Anda akan baik-baik saja.
sumber
SSH
akses. Menggunakan otentikasi HTTP, seseorang yang mencuri kredensial hanya akan memiliki aksesGitHub/GitLab
. Token juga dirancang untuk memiliki kehidupan yang terbatas.Setelah mempelajari puluhan posting SO, blog, dll, saya mencoba setiap metode, dan inilah yang saya temukan. Ini mencakup semuanya.
Lembar Cheat Vanilla DevOps Git Kredensial & Paket Pribadi
Ini semua cara dan alat yang dengannya Anda dapat mengotentikasi git dengan aman untuk mengkloning repositori tanpa prompt kata sandi interaktif .
Peluru Perak
Want Just Works ™? Ini adalah peluru perak ajaib.
Dapatkan Token Akses Anda (lihat bagian di lembar contekan jika Anda memerlukan petunjuk Github atau Gitea untuk itu) dan mengaturnya dalam variabel lingkungan (baik untuk pengembang lokal dan penyebaran):
Untuk Github, salin dan jalankan baris ini kata demi kata :
Selamat, sekarang setiap alat kloning git repositori otomatis tidak akan terhalang oleh prompt kata sandi, apakah menggunakan https atau gaya url ssh.
Tidak menggunakan Github?
Untuk platform lain (Gitea, Github, Bitbucket), cukup ubah URL. Jangan mengubah nama pengguna (meskipun sewenang-wenang, mereka diperlukan untuk entri konfigurasi yang berbeda).
Kesesuaian
Ini berfungsi secara lokal di MacOS, Linux, Windows (dalam Bash), Docker, CircleCI, Heroku, Akkeris, dll.
Info lebih lanjut
Lihat bagian ".gitconfig sebagai gantinya" dari lembar contekan.
Keamanan
Lihat bagian "Keamanan" pada lembar contekan.
sumber
git config --global credential."https://somegithost.com".username MyUserName
, yang ada di lembar contekan Anda, tetapi tidak di tempat lain di utas jawaban ini. Solusi khusus itu tidak menjawab pertanyaan OP, tetapi menjawab pertanyaan saya, jadi terima kasih!Dalam hal ini Anda perlu bantuan kredensial git untuk memberi tahu git untuk mengingat kata sandi dan nama pengguna GitHub Anda dengan menggunakan baris perintah berikut:
dan jika Anda menggunakan repo menggunakan kunci SSH maka Anda perlu kunci SSH untuk otentikasi.
sumber
Tidak ada jawaban di atas yang berfungsi untuk saya. Saya terus mendapatkan yang berikut setiap kali saya ingin
fetch
ataupull
:Enter passphrase for key '/Users/myusername/.ssh/id_rsa':
Untuk Mac
Saya dapat menghentikannya untuk meminta frasa sandi saya dengan:
vi ~/.ssh/config
UseKeychain yes
:wq!
Untuk Windows
Saya dapat membuatnya berfungsi menggunakan info di stackexchange ini: https://unix.stackexchange.com/a/12201/348665
sumber
Selain mengedit
~/.gitconfig
file, itu dapat Anda lakukan jika Anda bertanya:atau
Catatan untuk selalu menggunakan kutipan tunggal :
atau
Nama pengguna dan kata sandi Anda mungkin menggunakan beberapa karakter yang akan merusak kata sandi Anda jika Anda menggunakan tanda kutip ganda.
--local
atau--global
berarti params konfigurasi disimpan untuk proyek atau untuk pengguna os.sumber
gunakan saja
dan lakukan git pull , ia akan meminta nama pengguna dan kata sandi, mulai sekarang tidak akan memberikan prompt untuk nama pengguna dan kata sandi itu akan menyimpan rincian
sumber
Simpan nama pengguna dan kata sandi di .git-kredensial
.git-credentials
adalah tempat nama pengguna dan kata sandi Anda (akses token) disimpan saat Anda menjalankangit config --global credential.helper store
, yang merupakan jawaban lain yang disarankan, dan kemudian ketik nama pengguna dan kata sandi Anda atau akses token:Jadi, untuk menyimpan nama pengguna dan kata sandi (token akses):
Ini sangat berguna untuk robot github, misalnya untuk menyelesaikan pembuatan rantai otomatis di repositori buruh pelabuhan yang sama dengan memiliki aturan untuk cabang yang berbeda dan kemudian memicunya dengan mendorongnya ke dalam
post_push
hooker di hub docker.Contoh dari ini dapat dilihat di sini di stackoverflow.
sumber
Cara cepat untuk menembolok kredensial git:
bagus dan aman
batas waktu dalam detik.
sumber
Setelah membaca utas sepenuhnya dan bereksperimen dengan sebagian besar jawaban untuk pertanyaan ini, saya akhirnya menemukan prosedur yang cocok untuk saya. Saya ingin membaginya jika seseorang harus berurusan dengan kasus penggunaan yang kompleks tetapi masih tidak ingin melalui thread penuh dan gitcredentials , gitcredentials-store dll halaman manual, seperti yang saya lakukan.
Temukan di bawah prosedur yang saya sarankan JIKA Anda (seperti saya) harus berurusan dengan beberapa repositori dari beberapa penyedia (GitLab, GitHub, Bitbucket, dll.) Menggunakan beberapa kombinasi nama pengguna / kata sandi. Jika Anda hanya memiliki satu akun untuk bekerja, maka Anda mungkin lebih baik menggunakan
git config --global credential.helper store
ataugit config --global user.name "your username"
dll solusi yang sudah sangat baik dijelaskan dalam jawaban sebelumnya.Solusi saya:
> git config --global --unset credentials.helper
> cd /path/to/my/repo
> git config --unset credential.helper
> git config credential.helper 'store --file ~/.git_repo_credentials'
Catatan : perintah ini membuat file baru bernama ".git_repo_credentials" ke direktori home Anda, tempat Git menyimpan kredensial Anda. Jika Anda tidak menentukan nama file, Git menggunakan default ".git_credentials". Dalam hal ini hanya mengeluarkan perintah berikut akan dilakukan:
> git config credential.helper store
git config credential.*.username my_user_name
Catatan : menggunakan "*" biasanya ok jika repositori Anda berasal dari penyedia yang sama (mis. GitLab). Jika sebaliknya repositori Anda di-host oleh penyedia yang berbeda maka saya sarankan untuk secara eksplisit mengatur tautan ke penyedia untuk setiap repositori, seperti dalam contoh berikut (untuk GitLab):
git config credential.https://gitlab.com.username my_user_name
Pada titik ini jika Anda mengeluarkan perintah yang memerlukan kredensial Anda (mis.
git pull
) Anda akan dimintai kata sandi yang terkait dengan "my_user_name". Ini hanya diperlukan satu kali karena git menyimpan kredensial ke ".git_repo_credentials" dan secara otomatis menggunakan data yang sama pada akses selanjutnya.sumber
Dari komentar oleh rifrol, di Linux Ubuntu, dari jawaban ini , begini caranya di Ubuntu:
Beberapa distro lain menyediakan biner sehingga Anda tidak perlu membangunnya.
Di OS X biasanya datang "dibangun" dengan modul default "osxkeychain" sehingga Anda mendapatkannya secara gratis.
sumber
Periksa dokumentasi resmi git:
https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
sumber