Saya baru saja mulai menggunakan git dan saya tidak bisa mengingat kata sandi saya Saya menggunakan cmd.exe tinggi dan host git saya adalah github dan saya telah membuat kunci ssh seperti panduan di github
tapi saya masih bisa
*\subnus.mvc>git push origin master
Enter passphrase for key '/c/Users/Subnus/.ssh/id_rsa':
GIT_SSH
di lingkungan Anda (jika perlu) dan git / ssh akan mengingat kata sandi Anda melalui ssh-agent. Lihat jawaban saya di bawah ini untuk instruksi lebih detail.Jawaban:
Saya menyadari bahwa pertanyaan ini muncul pada usia dua tahun, tetapi saya memiliki masalah yang sama dan beberapa jawaban di sini tidak sepenuhnya menjawab pertanyaan untuk saya. Berikut adalah dua solusi langkah demi langkah, tergantung pada apakah Anda menggunakan TortoiseGit sebagai tambahan untuk msysgit atau tidak.
Solusi pertama Mengasumsikan Windows, msysgit, dan Putty.
Akses dialog variabel lingkungan Windows (Klik kanan pada "Computer", Klik "Properties", Klik "Advanced system settings" atau "Advanced" tab, klik pada "Variabel Lingkungan"). Tambahkan variabel lingkungan berikut:
GIT_SSH = C: \ full \ path \ to \ plink.exe
Ganti "C: \ full \ path \ to" dengan jalur instalasi lengkap ke Putty, tempat plink.exe ditemukan. Mungkin lebih baik menambahkannya ke bagian "Variabel pengguna". Juga, pastikan jalur yang Anda gunakan untuk plink.exe cocok dengan jalur yang Anda gunakan untuk Pageant (pageant.exe). Dalam beberapa kasus, Anda mungkin memiliki beberapa instalasi Putty karena mungkin diinstal bersama dengan aplikasi lain. Menggunakan plink.exe dari satu instalasi dan pageant.exe dari yang lain kemungkinan akan menyebabkan Anda kesulitan.
Buka prompt perintah.
Jika Anda mencoba untuk terhubung ke repositori git yang dihosting di Github.com kemudian jalankan perintah berikut:
plink.exe [email protected]
Jika repositori git yang Anda coba sambungkan dihosting di tempat lain, ganti [email protected] dengan nama pengguna dan URL yang sesuai. (Dengan asumsi Github) Anda harus diberi tahu bahwa kunci host server tidak di-cache, dan ditanya apakah Anda mempercayainya. Jawab dengan y . Ini akan menambahkan kunci host server ke daftar host yang dikenal Putty. Tanpa langkah ini perintah git tidak akan berfungsi dengan baik. Setelah menekan enter, Github memberi tahu Anda bahwa Github tidak menyediakan akses shell. Tidak apa-apa ... kita tidak membutuhkannya. (Jika Anda terhubung ke beberapa host lain, dan itu memberi Anda akses shell, mungkin yang terbaik adalah mengakhiri tautan tanpa melakukan hal lain.)
Solusi kedua Mengasumsikan Windows, msysgit, dan TortoiseGit.
TortoiseGit hadir dengan executable Putty, dan versi plink yang dimodifikasi khusus (disebut TortoisePlink.exe) yang akan membuat segalanya lebih mudah.
Akses dialog variabel lingkungan Windows (Klik kanan pada "Computer", Klik "Properties", Klik "Advanced system settings" atau "Advanced" tab, klik pada "Variabel Lingkungan"). Tambahkan variabel lingkungan berikut:
GIT_SSH = C: \ full \ path \ to \ TortoisePlink.exe
Ganti "C: \ full \ path \ to" dengan jalur instalasi lengkap ke TortoiseGit, tempat TortoisePlink.exe ditemukan. Mungkin lebih baik menambahkannya ke bagian "Variabel pengguna". Juga, pastikan bahwa jalur yang Anda gunakan untuk TortoisePlink.exe cocok dengan jalur yang Anda gunakan untuk Pageant (pageant.exe). Dalam beberapa kasus, Anda mungkin memiliki beberapa instalasi Putty karena mungkin diinstal bersama dengan aplikasi lain. Menggunakan TortoisePlink.exe dari instalasi TortoiseGit dan pageant.exe dari instalasi lain aplikasi yang berbeda (atau dari instalasi Putty mandiri) kemungkinan akan menyebabkan Anda kesulitan.
Semua selesai! Perintah Git sekarang harus bekerja dari baris perintah. Pertama kali Anda mencoba untuk terhubung ke repositori git Anda, Anda mungkin akan diberitahu bahwa kunci host server tidak di-cache, dan menanyakan apakah Anda mempercayai server. Klik pada "Ya". (Ini adalah tindakan TortoisePlink.exe.)
Anda mungkin ingin memiliki pageant.exe memuat file .ppk Anda secara otomatis saat boot , tergantung pada seberapa sering Anda membutuhkannya.
Solusi ketiga Mengasumsikan Window, msysgit, dan prompt perintah asli.
start-ssh-agent
sumber
start-ssh-agent
baris perintah untuk mendapatkannya untuk menyimpan frasa sandi SSH Anda.Setiap kali saya membuat desktop baru, saya lupa instruksi ini, jadi saya menambahkan jawaban lain di sini karena saya sering tersandung!
Langkah Cepat untuk Pengguna Yang Tidak Sabar Menyukai Saya
OpenSSH Authentication Agent
layanan dan mulai secara otomatis.ssh-add
di baris perintah.$ENV:GIT_SSH=C:\Windows\System32\OpenSSH\ssh.exe
ke sesi Anda, atau secara permanen ke lingkungan pengguna Anda.Langkah-langkah terperinci: Gambaran Umum
Windows telah dikirimkan dengan OpenSSH selama beberapa waktu sekarang. Ini mencakup semua bit yang diperlukan agar ssh dapat bekerja bersama Git, tetapi tampaknya masih membutuhkan perhatian dan kasih sayang sebelum bekerja 100% mulus. Inilah langkah-langkah yang telah saya ikuti dengan sukses pada Windows ver 10.0.18362.449 (Anda dapat melihat versi Windows 10 Anda dengan membuka shell cmd.exe dan mengetik
ver
).Saya berasumsi di sini bahwa Anda sudah memiliki pengaturan kunci SSH, dan terletak di
~/.ssh/id_rsa
Aktifkan layanan ssh-agent di kotak Windows 10 Anda.
OpenSSH Authentication Agent
layanan dalam daftar.OpenSSH Authentication Agent
layanan, dan pilih 'Properti'.Startup type:
keAutomatic
.Start
tombol untuk mengubah status layanan menjadiRunning
.OK
, dan tutup aplikasi Layanan.Tambahkan kunci Anda ke
ssh-agent
ssh-agent
:ssh-add
(Anda dapat menambahkan jalur ke kunci Anda sebagai argumen pertama jika berbeda dari default) .Coba Git + SSH
git clone [email protected]:octocat/Spoon-Knife
Tetapkan
GIT_SSH
Variabel Lingkungan AndaDalam sesi apa pun Anda cukup mengatur variabel lingkungan ini dan permintaan frasa sandi Anda akan berhenti muncul dan ssh akan menggunakannya
ssh-agent
atas nama Anda. Atau, Anda dapat mengatur frasa sandi ke lingkungan pengguna secara permanen.Untuk mengatur
GIT_SSH
di shell saat ini saja:ssh.exe
:$Env:GIT_SSH=$((Get-Command -Name ssh).Source)
Untuk mengatur
GIT_SSH
secara permanenVariable name:
bidang ke GIT_SSHVariable value:
bidang ke path-ke-ssh.exe (biasanyaC:\Windows\System32\OpenSSH\ssh.exe
).Perhatikan bahwa ini kemungkinan akan berubah dengan langkah / prosedur baru ketika Windows 10 berkembang dan ketika saya belajar lebih banyak. Saya akan berusaha untuk terus memperbarui ini, saya berharap umpan balik dalam komentar.
sumber
Untuk siapa pun yang membutuhkan instruksi lebih detail, lihat halaman ini: http://help.github.com/working-with-key-passphrases/
sumber
msysgit
shell.notepad ~/.profile
dan menyalin konten yang disisipkan dari tautan itu, memulai ulang Git Bash, memasukkan kata sandi saya, mengambil untung ...Jika Anda menggunakan Git bash di Windows Anda dapat melakukan hal berikut:
ia akan meminta pass phrase dalam perintah kedua, dan hanya itu. Setiap tindakan tambahan yang perlu Anda lakukan (yang mana diperlukan frase lulus) tidak akan meminta Anda untuk frase lulus (lihat contoh di screenshot di bawah ini):
sumber
Satu solusi ekstra 5 tahun, 8 bulan dan 6 hari setelah pertanyaan diposting tidak akan menjadi ide yang buruk jadi begini.
CATATAN: Diasumsikan Anda menggunakan komputer windows.
PATH
variabel lingkungan Anda , seharusnya hanya berfungsi. Jika tidak, jalankangit-credential-winstore -i C:\Path\To\Git.exe
.Lain kali Anda mencoba komit ke repositori, Anda akan diminta untuk memasukkan kredensial Anda. Seharusnya begitu. Anda tidak akan diminta untuk kredensial Anda lagi sampai Anda mengubah kata sandi Anda.
Hanya untuk pengetahuan Anda ... Kredensial Anda disimpan di Windows Credential Store
sumber
Jika Anda menetapkan kata sandi untuk file kunci Anda, Anda harus selalu mengetikkan kata sandi itu saat menghubungkan. Jika Anda membuat kunci tanpa kata sandi, maka Anda tidak perlu mengetiknya setiap saat, namun, siapa pun yang memiliki akses ke file kunci Anda sekarang dapat terhubung ke akun github Anda.
ssh-agent juga dapat bekerja. Coba jalankan itu dan lihat apakah ia akan mengingat kata sandi Anda.
sumber
ssh-keygen -p
seharusnya memungkinkan OP untuk tidak menetapkan frasa sandi[edit - salah membaca pertanyaan, ini merupakan jawaban untuk masalah terkait. meninggalkan versi ulang untuk anak cucu]
Kasus saya adalah saya mencoba mendorong ke repo yang di-host di salah satu server kami. Setiap kali saya mencoba melakukan push, git akan menanyakan kata sandi saya (nb - kata sandi, bukan frasa sandi ke kunci pribadi saya).
Dengan menambahkan kunci publik saya ke kunci resmi di server, saya bisa mendapatkan dorongan bebas kata sandi ke server itu. Dan, karena tidak ada frasa sandi pada kunci pribadi saya (yang merupakan praktik buruk btw!) Saya tidak perlu mengetikkan apa pun di.
Inilah perintah untuk menambahkan kunci publik Anda ke server. Diasumsikan pengguna
git
adalah pengguna di server.Anda dapat mencapai hal yang sama dengan masuk ke server, dan secara manual menambahkan kunci publik Anda ke file di
~/.ssh/authorized_keys
sumber
Saya menyadari ini sudah beberapa tahun terlambat, tetapi saya menemukan pertanyaan ini mencoba menemukan solusi untuknya, dan saya menemukan sesuatu yang sesuai dengan semua tingkat keahlian, jadi saya pikir saya akan berbagi.
GitHub menyediakan penginstal yang sangat membantu yang membuat segalanya menyenangkan dan mudah: https://help.github.com/articles/caching-your-github-password-in-git/
sumber
Mari kita asumsikan Anda ingin menggunakan solusi Git Bash murni tanpa menggunakan TortoiseGit atau Putty. Selain itu, Anda tidak ingin menyimpan kata sandi Anda secara permanen karena hampir sama dengan jika Anda membuat kunci SSH tanpa kata sandi. Tapi Anda masih ingin menggunakan caching.
Untuk keperluan tujuan caching
ssh-agent
digunakan, yang termasuk dalam distribusi Git Bash. Proses ini tidak dimulai secara default, sehingga harus diluncurkan terlebih dahulu. Untuk setiap kunci SSH yang akan di-cache mereka harus ditambahkan ke proses ini denganssh-add
perintah yang akan meminta Anda untuk frasa sandi kunci dan menyimpannya dalam memori.Kerugian dari solusi lain:
ssh-agent
seperti pada artikel GitHub meminta frasa sandi sejak awal saat Anda meluncurkan Git Bash, terlepas dari apakah Anda perlu menggunakan kunci SSH Anda pada sesi ini atau tidak. Jika Anda bekerja dengan repo lokal Anda hari ini, Anda mungkin ingin memberikan frasa sandi hanya ketika benar-benar diperlukan (misalnya saat berinteraksi dengan repo jarak jauh).ssh-agent
like di artikel GitLab denganeval $(ssh-agent -s)
Anda mungkin sudah bosan mengetiknya setiap waktu. Kemungkinannya adalah, pada akhirnya, Anda telah menambahkan dua baris itu ke.bashrc
konfigurasi Anda ke peluncuran otomatis. Kerugiannya sama dengan di atas ditambah yang lebih: setiap kali Anda meluncurkan terminal Git Bash baru Anda akan mendapatkan proses ssh-agent tambahan (skrip bash GitHub memeriksa apakah proses itu sudah dimulai).Jadi solusi ini adalah bagi mereka yang bertanya-tanya bagaimana membuat Git Bash meminta frasa sandi hanya sekali per sesi Windows dan hanya ketika benar-benar dibutuhkan. Itu menyerupai perilaku manajemen frasa sandi dengan GnuPG melakukan penandatanganan otomatis menggunakan
default-cache-ttl
.Mengkonfigurasi SSH untuk meminta frasa sandi satu kali, bila diperlukan, hanya menggunakan Git Bash
Pertama, kami ingin meluncurkan secara otomatis
ssh-agent
saat memulai shell Git Bash. Kami akan menggunakan skrip GitHub yang dimodifikasi untuk itu karena memeriksa apakah prosesnya sudah dimulai, tetapi kami tidak ingin segera melakukanssh-add
kunci. Skrip ini masuk ke Anda~/.bashrc
atau~/.profile
atau~/.bash_profile
(~
direktori home Pengguna Anda sepertiC:\Users\Username
- jalankancd ~
dan kemudianpwd
untuk Git Bash untuk mencetaknya):Sekarang edit atau buat
~/.ssh/config
file dan tambahkanAddKeysToAgent
opsi untuk setiap bait host yang Anda ingin caching dinyalakan (Anda juga dapat menyalakannya secara global dengan menempatkan arahan di awal file sebelum semua deklarasi host):Masa hidup maksimum default adalah selamanya atau sampai
ssh-agent
proses terbunuh (baik secara manual dari task manager atau ketika PC Anda dimatikan). Jika Anda ingin menggunakan batas waktu yang terbatas, Anda dapat mengaturnya dengan-t
parameter ssh-agent . Ubah baris dalam skrip bash dari langkah pertama di atas, mis. Selama 30 menit masa cache kunci:Lihat di sini untuk kualifikasi format waktu lainnya.
sumber
Anda dapat membuat
.bashrc
file di direktori home seperti yang Anda sukaiC:/Users/youruser
, dan letakkan di sana:Script ini dijalankan setiap kali setelah bash berjalan. Jadi, Anda harus memasukkan kata sandi hanya sekali, saat
git-bash
dimulai!Beberapa versi bash memerlukan
.bash_profile
file sebagai gantinya.bashrc
, jadi hanya dalam kasus klon.bashrc
:sumber
dapat mencoba menambahkan -k arg ketika Anda melakukannya;
sumber