Saya mulai menggunakan Visual Studio Code , dan saya mencoba untuk menyimpan proyek pengujian saya ke GitHub , tetapi Visual Studio Code selalu meminta kredensial GitHub saya .
Saya telah menginstal di PC GitHub Desktop saya dan juga Git , saya sudah menjalankan:
git config --global credential.helper wincred
tapi tetap saja Visual Studio Code meminta kredensial.
Ada bantuan?
di sini adalah file .gitconfig saya yang terletak di folfer profil pengguna:
[filter "lfs"]
clean = git-lfs clean %f
smudge = git-lfs smudge %f
required = true
[user]
name = ddieppa
[user]
email = [email protected]
[credential]
helper = wincred
Ini jendela sembulan yang meminta kredensial:
Saya memasukkan kredensial GitHub saya di popup, tetapi masih mendapatkan kesalahan ini di jendela output Git di Visual Studio Code :
remote: Anonymous access to ddieppa/LineOfBizApp.git denied.
fatal: Authentication failed for 'https://github.com/ddieppa/LineOfBizApp.git/'
git
visual-studio
github
visual-studio-code
ddieppa
sumber
sumber
Jawaban:
Terakhir diperbarui: 05 Maret, 2019
Setelah 98 upvotes, saya pikir saya perlu memberikan jawaban yang benar dengan penjelasannya.
Mengapa kode VS meminta kata sandi? Karena VSCode menjalankan fitur pengambilan otomatis, sementara server git tidak memiliki informasi untuk mengotorisasi identitas Anda. Itu terjadi ketika:
https
url jarak jauh. Iya! Remote jenis ini pasti akan menanyakan Anda setiap saat. Tidak ada pengecualian di sini! (Anda dapat melakukan trik sementara untuk men-cache otorisasi sebagai solusi di bawah ini, tetapi ini tidak disarankan.)ssl
url jarak jauh, TETAPI Anda belum menyalin kunci publik ssh ke server git. Gunakanssh-keygen
untuk menghasilkan kunci Anda dan menyalinnya ke server git. Selesai! Solusi ini juga membantu Anda tidak pernah mengetik ulang kata sandi di terminal lagi. Lihat instruksi yang bagus dari @Fnatical di sini untuk jawabannya.Bagian yang diperbarui pada akhir jawaban ini tidak benar-benar membantu Anda sama sekali. (Ini benar-benar membuat Anda mandek dalam alur kerja Anda.) Itu hanya menghentikan hal-hal yang terjadi di VSCode dan memindahkan kejadian ini ke terminal.
Maaf jika jawaban buruk ini mempengaruhi Anda untuk waktu yang sangat lama.
-
jawaban asli (buruk)
Saya menemukan solusi pada dokumen VSCode :
Jadi, nyalakan helper kredensial sehingga Git akan menyimpan kata sandi Anda di memori untuk beberapa waktu. Secara default, Git akan men-cache kata sandi Anda selama 15 menit.
Di Terminal, masukkan yang berikut ini:
Untuk mengubah batas waktu cache kata sandi default, masukkan yang berikut ini:
UPDATE (Jika jawaban asli tidak berhasil)
Saya menginstal VS Code dan mengkonfigurasi yang sama di atas, tetapi seperti @ddieppa berkata, Itu tidak bekerja untuk saya juga. Jadi saya mencoba menemukan opsi di Pengaturan Pengguna, dan saya melihat "git.autofetch" = true, sekarang atur itu salah! Kode VS tidak lagi diperlukan untuk memasukkan kata sandi berulang kali lagi!
Dalam menu, klik File / Preferensi / Pengaturan Pengguna Dan ketik ini:
Tempatkan pengaturan Anda di file ini untuk menimpa pengaturan default
sumber
git config --global credential.helper cache
. Lihatlah git-scm.com/book/gr/v2/Git-Tools-Credential-Storage untuk detail lebih lanjut.Anda harus dapat menetapkan kredensial Anda seperti ini:
git remote set-url origin https://<USERNAME>:<PASSWORD>@bitbucket.org/path/to/repo.git
Anda bisa mendapatkan url jarak jauh seperti ini:
git config --get remote.origin.url
sumber
Ini telah berfungsi untuk saya:
1. Setel kredensial untuk menyimpan
$ git config --global credential.helper store
2. kemudian verifikasi jika Anda ingin:
$ git config --global credential.helper store
Contoh sederhana saat menggunakan git bash yang dikutip dari sini (hanya berfungsi untuk repo saat ini, gunakan
--global
untuk semua repo)Akan bekerja untuk Kode VS juga.
Contoh lebih rinci dan penggunaan lanjutan di sini .
Catatan: Nama pengguna & Kata Sandi tidak dienkripsi dan disimpan dalam format teks biasa jadi gunakan hanya di komputer pribadi Anda.
sumber
store
melakukannya.https
untukssh
dan gunakan tombol ssh sebagai alternatif.Langkah-langkah berikut memandu Anda melalui cara:
** Membuat kunci SSH tanpa frasa sandi tidak bijaksana jika pekerjaan Anda sangat sensitif.
OS - Fedora 28 | Editor - VS Code v1.23.0 | Repositori - Git
Hasilkan kunci SSH:
ssh-keygen -t rsa -C "[email protected]"
Setelah menyelesaikan langkah-langkah di atas, lokasi kunci publik Anda ditampilkan di jendela terminal. Jika pengguna yang saat ini masuk adalah 'bob', lokasi kunci publik Anda adalah /home/bob/.ssh/id_rsa.pub
Salin dan impor kunci publik ke GitHub:
cat /home/bob/.ssh/id_rsa.pub
Salin seluruh kunci publik yang sekarang ditampilkan di jendela terminal Anda ke clipboard
Konfirmasikan langkah-langkah di atas:
ssh -T [email protected]
yes
Hai! Anda telah berhasil mengautentikasi, tetapi GitHub tidak menyediakan akses shell.
Komit / push pertama tanpa harus memasukkan nama pengguna / kata sandi: -
touch test.txt
git add test.txt
git commit
- membuka editor, masukkan pesan, dan simpan file. Jika vi adalah editor Anda, tekani
setelah file dibuka, masukkan pesan, tekan esc, lalu masuk:x
untuk menyimpan perubahan.git push
Satu-satunya masalah yang Anda temui adalah saat Anda mencoba SSH ke GitHub. Tautan ini akan memberikan bantuan -
Selamat berburu!
sumber
Coba instal " Git Credential Manager Untuk Windows " (dan ikuti instruksi untuk mengatur manajer kredensial ).
Ketika diperlukan dalam aplikasi menggunakan Git (mis. Kode VS) itu akan " ajaib " membuka dialog yang diperlukan untuk input kredensial Layanan Tim Visual Studio.
sumber
ssh-agent
sudah berlari . Tetapi VS Code tampaknya mengabaikan hal itu di Linux.Yang harus saya lakukan adalah menjalankan perintah ini:
git config --global credential.helper wincred
Kemudian saya diminta kata sandi dua kali.
Lain kali itu berfungsi tanpa meminta saya untuk kata sandi.
sumber
store
sebagai gantiwincred
.git config --global credential.helper 'cache --timeout==1209600'
untuk membuatnya bertahan selama 2 minggu, bukan 15 menit default. Sumber: help.github.com/en/github/using-git/…store
akan menyimpannya secara permanen di disk. Juga, komentar saya sebelumnya memiliki kesalahan: jangan gunakan==
, gunakan=
. Terlambat untuk mengedit.Gunakan ssh bukan http / https.
Anda perlu mengatur kunci ssh pada mesin lokal Anda, mengunggahnya ke server git Anda dan mengganti form url
http://
kegit://
dan Anda tidak perlu menggunakan password lagi.Jika Anda tidak dapat menggunakan ssh, tambahkan ini ke konfigurasi Anda:
dokumen ada di sini .
Menggunakan kunci ssh di github
Cukup ikuti langkah-langkah itu dan Anda akan mengatur kunci ssh Anda dalam waktu singkat:
Buat kunci ssh baru (atau lewati langkah ini jika Anda sudah memiliki kunci)
ssh-keygen -t rsa -C "your@email"
Setelah Anda memasukkan kunci dalam
home/.ssh
direktori (atau diUsers/<your user>.ssh
bawah windows), buka dan salin kontennyaBagaimana cara menambahkan kunci sh ke akun github?
SSH keys
Add ssh key
Dan Anda siap untuk pergi :-)
sumber
Secara umum, Anda dapat menggunakan fasilitas penyimpanan kredensial bawaan:
git config --global credential.helper store
Atau, jika Anda menggunakan Windows, Anda dapat menggunakan sistem kredensial mereka:
git config --global credential.helper wincred
Atau, jika Anda menggunakan MacOS, Anda dapat menggunakan sistem kredensial mereka:
git config --global credential.helper osxkeychain
Solusi pertama optimal dalam sebagian besar situasi.
sumber
Otentikasi Git otomatis . Dari Catatan Rilis v1.45 :
sumber
askpass = /usr/bin/ksshaskpass
saya.gitconfig
dan sebagai hasilnya saya mendapatkan nama pengguna dan kata sandi yang diminta setiap saat. Ini mungkin akan lebih ditingkatkan karena versi 1.45 peran di lebih banyak mesin.Untuk windows 10: buka panel kontrol / Manajer Kredensial / Kredensial Windows -> klik pada tautan git, -> edit -> perbarui kata sandi baru. Itu seharusnya bekerja
sumber
Gunakan kunci SSH tanpa frasa sandi.
Mungkin ini jelas bagi sebagian orang (bukan bagi saya). Ini juga tidak menyelesaikan masalah jika Anda benar-benar memerlukan frasa sandi, tetapi ini adalah kompromi yang layak dalam situasi saya di Mac.
sumber
Setelah berkelahi dengan hal seperti ini sebentar, saya pikir saya menemukan solusi yang baik, terutama ketika memiliki banyak akun di GitHub dan BitBucket. Namun untuk VSCode, akhirnya berakhir sebagai memulainya dari terminal Git Bash sehingga mewarisi variabel lingkungan dari sesi bash dan ia tahu agen ssh mana yang harus dilihat.
Saya menyadari ini adalah posting lama tapi saya masih benar-benar berjuang untuk menemukan satu tempat untuk mendapatkan info yang saya butuhkan. Plus sejak 2017, ssh-agent mendapatkan kemampuan untuk meminta Anda untuk frasa sandi hanya ketika Anda mencoba mengakses repo.
Saya meletakkan temuan saya di sini jika ada yang tertarik:
sumber
Mengikuti artikel itu :
Anda bisa mengatur GIT_SSH env. var. untuk program plink.exe Putty. (Kemudian gunakan pageant.exe sebagai agen autentikasi)
sumber
Selesaikan masalah dengan mengikuti langkah-langkah.
Perangkat lunak yang tidak diinstal Vscode dan git dan instal ulang yang sama. Mengubah url git repositori git dari ssh ke https.
sumber
Saya punya masalah serupa dalam Visual Studio Code.
Saya dipecahkan dengan mengubah url jarak jauh ke https . (dalam file .git / config)
dan juga
ditarik lagi, popup kredensial windows keluar, masalah diselesaikan.
sumber
Bagi saya, saya telah mengatur repo jarak jauh saya dengan kunci SSH tetapi git tidak dapat menemukannya karena variabel lingkungan HOMEDRIVE secara otomatis disetel ke pangsa jaringan karena kebijakan domain perusahaan saya. Mengubah variabel lingkungan di shell saya sebelum meluncurkan
code .
menyebabkan VSCode mewarisi variabel lingkungan yang benar dan tidak ada lagi kesalahan koneksi di jendela output git.Sekarang saya hanya perlu mencari cara untuk mengganti kebijakan domain sehingga HOMEDRIVE selalu menunjuk ke
c:\users\marvhen
direktori lokal saya yang merupakan lokasi default untuk.ssh
direktori.sumber
Saya berhasil menghentikan ini dengan melakukan langkah-langkah berikut.
cd "C:\Program Files\Git\mingw64\libexec\git-core"
diikuti olehgit-credential-manager.exe uninstall
git config --global credential.helper wincred
CATATAN: Saya menggunakan Token Akses Pribadi sebagai kata sandi saya.
sumber
Saya memecahkan masalah serupa dengan cara sederhana:
git pull origin master
. Ganti 'asal' dengan nama Remote AndaItu saja. Saya memecahkan masalah
sumber
selain menambahkan entri konfigurasi ssh di atas
jika windows
di PowerShell sekarang kode vs seharusnya tidak meminta ...
sumber
untuk windows 10 tekan windows key type cred dan Anda akan melihat "Credential Manager" di Control Panel klik untuk membuka dan kemudian menghapus kredensial yang di-cache terkait lalu coba lagi, itu akan meminta kunci kata sandi id pengguna dengan kata sandi yang benar dan Anda akan lebih baik .
Terjadi dengan saya ketika saya mengubah kata sandi jaringan saya
sumber
Saya biasanya menjalankan perintah sederhana ini untuk mengubah url remote git dari https ke ssh
sumber