Mengapa git tidak dapat mengingat kata sandi saya di Windows

144

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':
Nesizer
sumber
Saya belum pernah menggunakan msysgit, tetapi agen otentikasi kontes mungkin bermanfaat.
Cebjyre
1
Saya mencoba segalanya dan kemudian saya menemukan ini yang berhasil.
Blake Niemyjski
1
Windows 10 dikirimkan dengan OpenSSH untuk beberapa waktu sekarang. Aktifkan layanan ssh-agent, gunakan ssh-add untuk menambahkan kunci Anda ke ssh store, dan atur GIT_SSHdi 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.
d3r3kk
1
2019, baru saja menginstal git di windows 10 dan git meminta kata sandi sekali , dan mengingatnya.
Jean-François Fabre
@ Jean-FrançoisFabre Anda mungkin tidak menggunakan OpenSSL.
RoadRunner

Jawaban:

206

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.

  1. Instal msysgit dan Putty seperti yang diperintahkan.
  2. (Opsional) Tambahkan Putty ke jalur Anda. (Jika Anda tidak melakukan ini, maka referensi ke perintah Putty di bawah ini harus diawali dengan path lengkap ke executable yang sesuai.)
  3. Jika Anda belum melakukannya, buat hash kunci seperti yang diinstruksikan di GitHub atau seperti yang diperintahkan oleh host Git Anda.
  4. Sekali lagi, jika Anda belum melakukannya, konversi kunci Anda untuk digunakan dengan pageant.exe Putty menggunakan puttygen.exe . Petunjuk ada dalam dokumentasi Putty, dalam panduan bermanfaat ini , dan beberapa tempat lain di dunia maya.
  5. Jalankan pageT.exe PuTTY , buka file .ppk Anda ("Tambahkan Kunci"), dan berikan frasa sandi Anda untuk kunci Anda.
  6. 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.

  7. Buka prompt perintah.

  8. 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.)

  9. Semua selesai! Perintah Git sekarang harus bekerja dari baris perintah. Anda mungkin ingin memiliki pageant.exe memuat file .ppk Anda secara otomatis saat boot , tergantung pada seberapa sering Anda membutuhkannya.

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.

  1. Instal msysgit dan TortoiseGit seperti yang diinstruksikan.
  2. Jika Anda belum melakukannya, buat hash kunci seperti yang diinstruksikan di GitHub atau seperti yang diperintahkan oleh host Git Anda.
  3. Sekali lagi, jika Anda belum melakukannya, mengkonversi kunci Anda untuk digunakan dengan pageant.exe TortoiseGit menggunakan TortoiseGit ini PuTTYgen.exe . Instruksi ada dalam dokumentasi Putty, di panduan bermanfaat terkait dengan dalam solusi pertama, dan beberapa tempat lain di dunia maya.
  4. Jalankan pageant.exe TortoiseGit , buka file .ppk Anda ("Tambahkan Kunci"), dan berikan frasa sandi Anda untuk kunci Anda.
  5. 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.

  6. 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.

  1. Instal msysgit
  2. Pastikan untuk mengizinkan git digunakan pada prompt perintah MS-DOS
  3. Lari start-ssh-agent
  4. Masukkan frasa sandi SSH
  5. Semua selesai! Perintah Git sekarang harus bekerja di prompt perintah asli.
Matt Clarkson
sumber
3
Jika Anda memiliki GitExtensions dan TortoiseGit, yang masing-masing memiliki versi dempul sendiri, pastikan Anda mengatur variabel lingkungan GIT_SSH ke jalur plink untuk kontes yang sebenarnya Anda gunakan.
shovavnik
15
Untuk berjaga-jaga seandainya ada orang lain yang mengalami kesalahan bodoh ini: pastikan Anda menggunakan format URL jarak jauh SSH (git @ host: accountname / reponame.git) bukan URL HTTPS kalau tidak akan terus meminta kata sandi itu ...
dain
Ketika saya menjalankan plink.exe [email protected], saya mendapatkan "KESALAHAN FATAL: Server tiba-tiba menutup koneksi jaringan"
Brett
4
Catatan: metode tiga telah di- upstream ke msysgit sehingga Anda cukup mengetikkan start-ssh-agentbaris perintah untuk mendapatkannya untuk menyimpan frasa sandi SSH Anda.
Matt Clarkson
6
Solusi ketiga hanya berfungsi sampai prompt perintah ditutup dan hanya untuk prompt perintah - semua CMD lainnya masih meminta kata sandi. Juga semua klien lain (VS, VS Code) gagal berkomunikasi dengan remote git.
Dima
21

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

  1. Aktifkan OpenSSH Authentication Agentlayanan dan mulai secara otomatis.
  2. Tambahkan kunci SSH Anda ke agen dengan ssh-adddi baris perintah.
  3. Uji integrasi git, jika masih meminta frasa sandi Anda, lanjutkan.
  4. Tambahkan variabel lingkungan $ENV:GIT_SSH=C:\Windows\System32\OpenSSH\ssh.exeke 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.

  1. Mulai-> Ketik 'Layanan' dan klik Aplikasi Layanan yang muncul.
  2. Temukan OpenSSH Authentication Agentlayanan dalam daftar.
  3. Klik kanan pada OpenSSH Authentication Agentlayanan, dan pilih 'Properti'.
  4. Ubah Startup type:ke Automatic.
  5. Klik Starttombol untuk mengubah status layanan menjadi Running.
  6. Tutup dialog dengan mengklik OK, dan tutup aplikasi Layanan.

Tambahkan kunci Anda ke ssh-agent

  1. Buka shell preferensi Anda (saya akan menggunakan Windows Powershell dalam contoh ini, berlaku untuk Powershell Core juga) .
  2. Tambahkan kunci SSH Anda ke ssh-agent: ssh-add (Anda dapat menambahkan jalur ke kunci Anda sebagai argumen pertama jika berbeda dari default) .
  3. Masukkan frasa sandi Anda jika diminta.

Coba Git + SSH

  1. Buka cangkang Anda (sekali lagi, saya menggunakan Powershell) dan klon repo.git clone [email protected]:octocat/Spoon-Knife
  2. Jika Anda melihat prompt ini, lanjutkan ke bagian selanjutnya:
Enter passphrase for key '/c/Users/your_user_name/.ssh/id_rsa':

Tetapkan GIT_SSHVariabel Lingkungan Anda

Dalam sesi apa pun Anda cukup mengatur variabel lingkungan ini dan permintaan frasa sandi Anda akan berhenti muncul dan ssh akan menggunakannya ssh-agentatas nama Anda. Atau, Anda dapat mengatur frasa sandi ke lingkungan pengguna secara permanen.

Untuk mengatur GIT_SSHdi shell saat ini saja:

  1. Buka cangkang preferensi Anda. (Powershell untuk saya)
  2. Setel variabel lingkungan GIT_SSH ke yang sesuai ssh.exe:$Env:GIT_SSH=$((Get-Command -Name ssh).Source)
  3. Coba lagi langkah-langkah di Try Git + SSH di atas.

Untuk mengatur GIT_SSHsecara permanen

  1. Buka File Explorer. Mulai-> ketik 'File Explorer' dan klik di daftar.
  2. Klik kanan 'PC ini' dan klik 'Properti'.
  3. Klik pada 'Pengaturan sistem lanjutan'.
  4. Klik tombol 'Variabel Lingkungan ...'.
  5. Di bawah 'Variabel pengguna untuk your_user_name' klik Baru ...
  6. Setel Variable name:bidang ke GIT_SSH
  7. Setel Variable value:bidang ke path-ke-ssh.exe (biasanya C:\Windows\System32\OpenSSH\ssh.exe).
  8. Klik OK untuk mengabaikan dialog Variabel Pengguna Baru.
  9. Klik OK untuk mengabaikan dialog Variabel Lingkungan.
  10. Coba lagi langkah-langkah di Try Git + SSH di atas.

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.

d3r3kk
sumber
3
Ini adalah jawaban paling lengkap per 31/1/2020, setidaknya untuk Windows. Tidak perlu menginstal PUTTY atau apa pun.
Jake
Sepakat. Tampaknya dukungan bawaan akhirnya ada di sini.
Eron Lloyd
Legenda! Ini menyelesaikan masalah saya. Telah mencari solusi untuk sementara waktu, mencoba hal-hal yang berbeda dan ini adalah tangan ke bawah pengguna yang paling lengkap untuk masalah ini
Collin
Terima kasih atas jawaban yang bagus dan yang menyelamatkan saya kemungkinan besar beberapa jam main-main. +1
Marah 84
20

Untuk siapa pun yang membutuhkan instruksi lebih detail, lihat halaman ini: http://help.github.com/working-with-key-passphrases/

Franz
sumber
Persis seperti yang saya butuhkan untuk menggunakan msysgitshell.
arthurakay
1
Bekerja untuk saya saat menggunakan Aplikasi Git Bash Desktop. Saya menggunakan notepad ~/.profiledan menyalin konten yang disisipkan dari tautan itu, memulai ulang Git Bash, memasukkan kata sandi saya, mengambil untung ...
Daryn
Saya mengikuti bagian "Auto-launching ssh-agent on Git for Windows" (menggunakan git 2.x pada Win 10) tetapi masih meminta saya untuk kata sandi sepanjang waktu. Mengikuti solusi pertama (dempul) dari jawaban yang diterima memperbaiki ini untuk saya.
jakub.g
20

Jika Anda menggunakan Git bash di Windows Anda dapat melakukan hal berikut:

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

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):

menambahkan pass phrase di Git bash di Windows

Guy Avraham
sumber
2
Ini juga berfungsi di subsistem Ubuntu di Windows 10.
meetar
1
perhatikan bahwa jika keypair Anda berada di tempat lain, Anda dapat mengganti ~ / .ssh / * _ rsa dengan lintasan file * .pem
alex_danielssen
13

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.

  1. Unduh git-credential-winstore .
  2. Menjalankannya! Jika Anda memiliki GIT di PATHvariabel lingkungan Anda , seharusnya hanya berfungsi. Jika tidak, jalankan git-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

Di mana Anda menyimpan kredensial saya?

Aplikasi ini hanya menggunakan Toko Kredensial Windows yang ada untuk memegang kredensial Anda. Anda dapat melihat kredensial yang disimpan dengan masuk ke Control Panel> User Accounts> Credential Manager dan memilih "Windows Credentials". Entri yang memulai "git:" berasal dari git-credential-winstore.

Alex Essilfie
sumber
8
Solusi ini tampaknya tidak berfungsi dengan repos SSH, hanya HTTPS. / angryface
JasonCoder
8

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.

Grant Limberg
sumber
menjalankan ssh-keygen -pseharusnya memungkinkan OP untuk tidak menetapkan frasa sandi
luchosrock
Masih meminta kata sandi.
versedi
7

[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 gitadalah pengguna di server.

cat .ssh/id_rsa.pub | ssh git@GIT_MASTER_IP 'cat >> .ssh/authorized_keys'

Anda dapat mencapai hal yang sama dengan masuk ke server, dan secara manual menambahkan kunci publik Anda ke file di ~/.ssh/authorized_keys

hwjp
sumber
Bisakah Anda mengonversi ini menjadi deskripsi yang dapat digunakan oleh seseorang yang tidak memiliki akses ke shell? Misalnya apa yang harus kita masukkan ke dalam otor_keys menggunakan notepad atau yang serupa?
John Little
4

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/

roobeedeedada
sumber
Harap perhatikan ini adalah caching kata sandi GitHub Anda , bukan frasa sandi kunci GPG.
Judge2020
4

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-agentdigunakan, 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 dengan ssh-addperintah yang akan meminta Anda untuk frasa sandi kunci dan menyimpannya dalam memori.

Kerugian dari solusi lain:

  • Peluncuran otomatis ssh-agentseperti 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).
  • Jika Anda meluncurkan ssh-agentlike di artikel GitLab dengan eval $(ssh-agent -s)Anda mungkin sudah bosan mengetiknya setiap waktu. Kemungkinannya adalah, pada akhirnya, Anda telah menambahkan dua baris itu ke .bashrckonfigurasi 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).
  • Seperti keduanya di atas tetapi terutama ketika Anda memiliki kunci SSH yang terpisah untuk host yang berbeda, misalnya satu untuk GitHub dan satu lagi untuk GitLab, jadi menyediakan semuanya sekaligus sangat menyebalkan dan tidak nyaman.

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

  1. Pertama, kami ingin meluncurkan secara otomatis ssh-agentsaat memulai shell Git Bash. Kami akan menggunakan skrip GitHub yang dimodifikasi untuk itu karena memeriksa apakah prosesnya sudah dimulai, tetapi kami tidak ingin segera melakukan ssh-addkunci. Skrip ini masuk ke Anda ~/.bashrcatau ~/.profileatau ~/.bash_profile( ~direktori home Pengguna Anda seperti C:\Users\Username- jalankan cd ~dan kemudian pwduntuk Git Bash untuk mencetaknya):

    ### Start ssh-agent
    
    env=~/.ssh/agent.env
    
    agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
    
    agent_start () {
        (umask 077; ssh-agent >| "$env")  # use -t here for timeout
        . "$env" >| /dev/null ; }
    
    agent_load_env
    
    # agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
    agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
    
    if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
        agent_start
    fi
    
    unset env
  2. Sekarang edit atau buat ~/.ssh/configfile dan tambahkan AddKeysToAgentopsi 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):

    # GitHub.com
    Host github.com
      Preferredauthentications publickey
      IdentityFile ~/.ssh/id_ed25519_github
      AddKeysToAgent yes
    
    # GitLab.com
    Host gitlab.com
      Preferredauthentications publickey
      IdentityFile ~/.ssh/id_ed25519_gitlab
      AddKeysToAgent yes

    Dari halaman manual ssh config : Jika opsi ini disetel ke ya dan kunci dimuat dari file, kunci dan frasa sandi ditambahkan ke agen dengan masa berlaku default, seolah-olah dengan ssh-add (1).

Masa hidup maksimum default adalah selamanya atau sampai ssh-agentproses terbunuh (baik secara manual dari task manager atau ketika PC Anda dimatikan). Jika Anda ingin menggunakan batas waktu yang terbatas, Anda dapat mengaturnya dengan -tparameter ssh-agent . Ubah baris dalam skrip bash dari langkah pertama di atas, mis. Selama 30 menit masa cache kunci:

(umask 077; ssh-agent -t 30m >| "$env")

Lihat di sini untuk kualifikasi format waktu lainnya.

Nikolay Kotlyarov
sumber
3

Anda dapat membuat .bashrcfile di direktori home seperti yang Anda sukai C:/Users/youruser, dan letakkan di sana:

env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env

Script ini dijalankan setiap kali setelah bash berjalan. Jadi, Anda harus memasukkan kata sandi hanya sekali, saat git-bashdimulai!

Beberapa versi bash memerlukan .bash_profilefile sebagai gantinya .bashrc, jadi hanya dalam kasus klon .bashrc:

copy .bashrc .bash_profile
Alexander Goncharov
sumber
1

dapat mencoba menambahkan -k arg ketika Anda melakukannya;

ssh-add -k ~/.ssh/id_rsa
tarikakyol
sumber