Pengaturan Git saya berjalan dengan baik di Linux, tetapi ketika saya mencoba mengatur semuanya di Windows (menggunakan Git untuk Windows dan TortoiseGit ), saya tidak tahu di mana harus meletakkan kunci SSH pribadi saya (atau, lebih baik lagi, bagaimana cara mengetahui di ssh
mana itu terletak). Saya menggunakan opsi ssh.exe standar selama instalasi Git untuk Windows. Pengaturan berjalan dengan baik jika saya mengizinkan otentikasi kata sandi (sebagai pengganti RSA) di server.
487
Jawaban:
Untuk Git Bash
Jika Anda menjalankan msysgit (saya berasumsi demikian) dan ingin menjalankan Git Bash (saya merekomendasikannya ke TortoiseGit, tapi saya lebih condong ke CLI daripada GUI sekarang), Anda perlu mencari tahu apa direktori home Anda untuk Git Bash dengan memulai kemudian ketik
pwd
(Pada Windows 7, itu akan menjadi sesuatu sepertiC:\Users\phsr
saya pikir). Saat Anda berada di Git Bash, Anda harus melakukannyamkdir .ssh
.Setelah Anda memiliki direktori home, dan
.ssh
folder di bawahnya, Anda ingin membuka PuTTYgen dan membuka kunci (file .ppk) yang telah Anda buat sebelumnya. Setelah kunci Anda terbuka, Anda ingin memilihConversions -> Export OpenSSH key
dan menyimpannyaHOME\.ssh\id_rsa
. Setelah Anda memiliki kunci di lokasi itu, Git Bash akan mengenali kunci dan menggunakannya.Catatan: Komentar menunjukkan bahwa ini tidak berfungsi dalam semua kasus. Anda mungkin perlu menyalin kunci OpenSSH ke
Program Files\Git\.ssh\id_rsa
(atauProgram Files (x86)\Git\.ssh\id_rsa
).Untuk TortoiseGit
Saat menggunakan TortoiseGit, Anda perlu mengatur kunci SSH melalui petunjuk langkah . Anda perlu melakukan itu untuk setiap repositori yang Anda gunakan dengan TortoiseGit.
sumber
~/.ssh/id_rsa
file saya keProgram Files\Git\.ssh\id_rsa
- yang agak membingungkan, tetapi sekarang IntelliJ dan Windows cmd dapat mendorong ke git repositori yang menggunakan otentikasi kunci.id_rsa
danid_rsa.pub
ke dalamnyac:\program files (x86)\Git\.ssh
. The.ssh
dir sudah hadir. Terima kasih, JP.id_rsa
tanpa ekstensi. Itu nama file, itu bukan direktoriMenggunakan klien SSH bawaan yang dikirimkan bersama Git untuk Windows, Anda perlu mengatur variabel lingkungan HOME sehingga klien Git SSH dapat menemukan kunci tersebut.
Misalnya, pada instalasi Windows Vista , ini akan dilakukan dengan mengeluarkan
setx HOME c:\Users\admin\
pada baris perintah.Itu membuat hari saya dan memperbaiki masalah dengan Git asalkan kunci pribadi Anda tidak dilindungi kata sandi. Jika Anda ingin menggunakan ssh-agent, maka Anda mungkin dapat menjalankan ssh-agent cmd.exe (walaupun saya belum pernah melakukannya) dan ssh-add seperti biasa.
Perhatikan bahwa semua alat Git / SSH seharusnya dijalankan dari cmd.exe agar tidak berkedip jendela.
Jika ini tidak berfungsi dengan benar, menggunakan plink mungkin dapat dicapai dengan mengutak-atik GIT_SSH . Lihat semua tutorial SVN + ssh; ini pada dasarnya adalah pipa yang sama yang perlu Anda siapkan.
sumber
setx HOME c:\Users\admin` command doesn't seems to be working in Git Bash. You have to use
cmd` sebagai gantinya.GIT_SSH=c:\pathto\plink.exe
Anda dapat menentukan lokasi kunci untuk TortoiseGit dengan cara berikut:
Tangkapan layar di bawah ini:
sumber
Tidak ada jawaban sebelumnya yang berfungsi untuk saya. Inilah yang pada akhirnya berhasil bagi saya. Ini sebenarnya cukup sederhana, jika Anda tahu apa yang harus diketik. Tidak perlu Putty.
Itulah yang dilakukan komputer Anda sendiri. Sekarang
ssh
ke server tujuan, lalu lakukanItu dia! Kamu sudah selesai! Dari Git Bash, lakukan hal berikut untuk menguji:
Jika daftar file di direktori home Anda di server Git, dan kemudian selesai!
Untuk GitHub, Anda tidak memiliki akses shell ke server mereka, tetapi Anda dapat mengunggah kunci menggunakan situs web mereka, jadi untuk bit 'sekarang salin ke server Anda', lakukan:
sumber
Jika Anda menggunakan msysgit dengan alat OpenSSH, Anda harus membuat
~/.ssh/id_rsa
, atau membuat konfigurasi Git~/.ssh/config
yang menunjuk ke kunci Anda.Berikut adalah contoh konfigurasi Git untuk Bitbucket yang akan menggunakan nama pengguna yang benar, dan kunci selain kunci default (jika Anda mempertahankan satu kunci untuk koneksi SSH, dan yang lain untuk akun Git).
~ / .ssh / config :
Setelah di Git Bash, Anda dapat menjalankan dua perintah untuk menambahkan kunci Anda ke ssh-agent sesi Anda saat ini untuk menghindari keharusan mengetik berulang kali kata sandi kunci tersebut.
sumber
Saya baru saja mengatur% HOME% =% HOMEPATH%
Ini memiliki keuntungan bekerja untuk semua pengguna yang masuk ke sistem (mereka masing-masing mendapatkan folder .ssh terpisah).
Di Vista:
sumber
%HOMEPATH%
tidak mengandung huruf drive, jadi jika sumber Anda tidak diC:
Anda perlu tambahkanC:
ke%HOME%
.set %HOME%=%HOMEPATH%
bekerja untukku! Terima kasih!!Kunci pribadi Anda perlu ditambahkan ke agen SSH di workstation Anda. Bagaimana Anda mencapai hal ini tergantung pada apa yang Anda gunakan klien git, namun dempul dan agen terkait (kontes) dapat melakukan trik untuk Anda, inilah tautan ke binari dan sumber resmi:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
sumber
C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
) menunjuk ke"C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk"
, sehingga itu memuat kunci SSH saya pada startup dan ini membuat GIT "hanya berfungsi": o)Dalam kasus saya, saya menggunakan Git untuk Windows dalam wadah Docker
windowsservercore
.Git saya dipasang oleh Chocolatey ke
C:\Program Files\Git
.Saya harus memperbarui file
C:\Program Files\Git\etc\ssh\ssh_config
dengan ini:Kemudian saya bisa menggunakan kunci dari
C:\Users\<user>\.ssh\id_rsa
Jika Anda menggunakan Git untuk windows bersama dengan OpenSSH untuk Windows. Git masih menggunakan sendiri
ssh
.Ditambah jika Anda berencana menggunakan
ssh-keyscan host.com > known_hosts
dari OpenSSH, hati-hati karena keluaran pipa daristdout
darikeyscan
(pada Windows) perubahan encoding ke UCS-2, tetapi OpenSSH dapat membaca hanya UTF-8! Jadi pastikan untuk mengubahknown_hosts
penyandian file.sumber
OK, saya melihat saran dari
.
.Tetapi menempatkan di kunci SSH pribadi saya di folder publik saya tidak berpikir itu ide yang baik, jadi saya mulai mencari di mana tuan rumah dikenal itu.
Jadi, jika Anda ingin melindungi kunci SSH Anda dengan benar, Anda perlu memasukkan kunci Anda di direktori berikut:
Untuk Windows 7, 8, dan 8.1 32-bit:
Untuk Windows 7, 8, dan 8.1 64-bit:
sumber
known_hosts
. Benar saja, itu diC:\Users\Dave\AppData\Local\VirtualStore\Program Files (x86)\Git\.ssh
. Dengan menempatkan file kunci saya (id_rsa) di direktori itu, ssh dapat menemukannya tanpa keluhan. Saya membaca sedikit - ini adalah bagaimana Windows menangani (warisan) perangkat lunak yang mencoba menulis ke daerah terlarang (seperti "C: \ Program Files \"), jadi ssh Git benar-benar tidak menyadari bahwa ia menulis ke direktori VirtualStore, Windows menangani itu secara transparan. Setidaknya file-file ini milik pengguna!Cara paling efisien adalah menggunakan Pageant karena itu akan membiarkan Anda menulis frasa sandi hanya sekali di awal sesi alih-alih setiap dorongan. Semua jawaban di sini terlalu pendek, jadi saya akan memposting panduan terperinci di sini:
pageant.exe
,puttygen.exe
,putty.exe
danplink.exe
dari website Putty ini. Tempatkan mereka diC:\puttyTools
direktori.puttygen.exe
.%USERPROFILE%\_ssh
(di komputer saya ini memetakanC:\Users\andres\.ssh\
). Tidak masalah apa yang Anda sebut kunci, tetapi untuk tujuan demonstrasi, saya akan menyebutnyagithub.ppk
. File ini harus memiliki ekstensi .ppk.Public key for pasting into OpenSSH authorized_keys file
dan tempel ke kunci SSH baru di pengaturan GitHub. Beri judul yang menjelaskan mesin apa yang dihidupkan kuncinya (mis. "Work laptop").pageant.exe
, ikon systray baru akan muncul.Environ
melalui WindowsMenu yang akan ditemukanEdit environment variables for your account
):GIT_SSH = "C:\puttyTools\plink.exe"
danSVN_SSH = "C:\puttyTools\PuTTY\plink.exe"
MINGW64
konsol Git Anda , dan verifikasi bahwa variabel lingkungan ada dengan menulis perintahenv | grep -i ssh
.(Awalnya diekstrak dari dua panduan ini yang saya gabungkan menjadi satu: Cara men-setup Git untuk Windows dan Mengkonfigurasi MinGW-W64 + MSYS untuk menggunakan Putty Plink / Pageant .)
sumber
Saat menggabungkan GitHub untuk Windows dan Git GUI untuk Windows, Anda mungkin mengalami masalah di mana Git GUI terus meminta Anda untuk nama pengguna dan kata sandi. Obat untuk ini adalah mengubah URL jarak jauh dari
https:
(yang merupakan apa yang diciptakan GitHub untuk Windows) ke protokol Git. Dalam.git
direktori di file konfigurasi, temukan:Ubah ke:
sumber
git@{SERVER URL}
?Lokasi standar untuk file dalam
%USERPROFILE%\.ssh
.%USERPROFILE%
adalah setara dengan $ HOME di Unix (biasanya memetakan ke sesuatu sepertic:\users\youruserid
).Jika Anda menggunakan alat SSH yang datang dengan Git, yang merupakan baris perintah standar alat Unix-style, Anda dapat menggunakan sesuatu seperti skrip saya di sini untuk bekerja dengan ssh-agent di semua shell.
sumber
%USERPROFILE% is the equivalent of $HOME
adalah tidak setara dengan$HOME
. Banyak aplikasi Linux yang berakting buruk yang porting ke Windows memperlakukan keduanya dengan sama tetapi mereka tidak harus diperlakukan sama.%USERPROFILE%
pada Windows dengan cara yang sama seperti$HOME
di Linux melanggar praktik / rekomendasi terbaik yang didokumentasikan dengan baik untuk pengembangan Windows (diterbitkan oleh MS sejak lama dan diperbarui dari waktu ke waktu). Ada banyak alat yang melakukan ini, tetapi argumen untuk mengikutinya sangat mirip dengan argumen "X kencing di kolam, jadi kita juga harus."USERPROFILE
adalah tempat pengguna menyimpan dokumen yang mereka buat / simpan (mis., simpan dialog).APPDATA
adalah untuk data konfigurasi per pengguna.LOCALAPPDATA
untuk cache per pengguna dan file besar.PROGRAMDATA
untuk konfigurasi dan cache di seluruh mesin.Saya memiliki masalah serupa dan tidak ada jawaban di sini yang memecahkan masalah. Ternyata, pasangan kunci saya awalnya dihasilkan dengan frasa sandi kosong. (Aku tahu, bodoh.)
Begitu saya membuat keypair baru dan mengunggah kunci publik ke GitHub, semuanya mulai berfungsi lagi.
sumber
Jawaban berikut juga berlaku untuk pertanyaan ini ketika menjalankan ssh dari Windows Service Account: Jenkins (Windows Service) dengan Git over SSH
sumber
Anda dapat menentukan jalur ke kunci dan nama file kunci seperti itu (di Ubuntu). Sebagai contoh:
sumber
GIT_SSH_COMMAND
pada mesin Windows saya.Kontes (agen SSH yang disertakan dengan bundel Putty ) memecahkan masalah bagi saya.
Saya memiliki pintasan di folder Startup Menu Start saya (
C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
) yang menunjuk"C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk"
, sehingga ia memuat kunci SSH saya pada startup dan ini membuat Git "berfungsi": o)sumber
Banyak jawaban yang mengatakan ini, tetapi bagi saya tidak cukup cepat!
di windows menggunakan msys (konsol windows standar)
C:\Users\{you}\.ssh\id_rsa
Pada dasarnya itu tidak mengganggu pemindaian kunci yang diinstal (setidaknya tidak pada laptop baru saya) dan kebutuhan khusus
id_rsa
Saya menemukan ini ingin mengkloning beberapa repo pekerjaan pribadi dalam ruby MSYS CLI untuk windows 10 64-bit
sumber
Jika Anda menggunakan Windows 7/8, Anda harus mencari di C: \ Users \ Your_User_Name.ssh. Cukup salin & tempel file id_rsa Anda di sini dan semuanya akan berjalan di luar kotak.
sumber
Satu kesalahan yang saya buat ketika menggunakan SSH pada Windows adalah ketika saya mencoba menggunakan kunci melalui klien Git Bash, semua file di dalam ~ / .ssh adalah izin yang salah, namun tidak berusaha memberi tahu saya bahwa itu adalah masalah.
Sama seperti tes, pastikan Anda telah mengatur semuanya di direktori ~ / .ssh Anda ke chmod 600.
sumber
Jika Anda memiliki izin yang diperlukan pada mesin Windows, dan kebijakan Anda mengizinkannya, saya sarankan menginstal Cygwin ( https://cygwin.com/ ), terutama mengingat Anda memiliki pengalaman sebelumnya dengan Linux. Cygwin akan memungkinkan untuk menangani kunci ssh Anda seperti yang Anda lakukan pada mesin Linux / Unix lainnya. Dan itu menyediakan akses ke hampir semua alat Linux.
sumber
TortoiseGit memungkinkan Anda menentukan kunci yang akan digunakan saat mengkloning repositori. Cukup centang "Load Putty Key" dan telusuri
.ppk
file tersebut, seperti pada tangkapan layar:sumber
Settings... -> Network -> SSH client
diatur keC:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe
Saya telah memperbaiki masalah di atas dengan membuat
file dan taruh:
sumber
Membaca komentar Anda pada jawaban Declan, cobalah membuka command prompt terlebih dahulu (Mulai → Jalankan → cmd ) dan kemudian arahkan ke folder git / bin itu dan jalankan
ssh-keygen
. Secara teoritis itu akan menghasilkan kunci RSA dan menempatkannya di direktori yang sesuai. Maka Anda harus menemukannya dan membagikan kunci publik Anda kepada dunia.Alasan bahwa jendela "berkedip" adalah karena Windows menjalankan program, dan ketika dijalankan, ia menutup command prompt, berpikir Anda sudah selesai dengan itu, ketika Anda benar-benar membutuhkan output.
sumber
Menggunakan v0.17 dari Git Gui di Windows saya mengklik perintah menu berikut: Bantuan → Tampilkan Kunci SSH .
Muncul dialog berjudul Kunci Publik OpenSSH Anda . Saya membuat kunci dan menyalinnya ke clipboard. Kemudian saya terus mengikuti instruksi setup-ssh pada githelp dari Langkah Tiga dan seterusnya. Setelah itu Git Gui berkomunikasi dengan GitHub secara diam-diam - tidak perlu memasukkan kredensial.
sumber
Pada sistem Windows 7 saya, Git Gui mencari kunci RSA di
userprofile/.ssh
folder atau lebih khususc:/users/yourusername/.ssh/
.Bagian rumit untuk pengaturan saya adalah mendapatkan host bersama di hostmonster untuk menerima kunci. Satu-satunya cara saya bisa membuatnya bekerja adalah dengan menggunakan Git Gui untuk membuat pasangan kunci (tanpa kata sandi) dan kemudian menyalin dan menempelkan kunci publik melalui panel kontrol, ssh, kelola kunci.
Untuk memulai di awal, Anda harus membuat kunci di Git Gui dengan masuk ke menu Help , Show SSH key , lalu Generate Key . Sekarang Anda akan memiliki dua kunci baru di
.ssh
direktori. Buka.pub
file dan salin isinya.Masuk ke panel kontrol Anda pada host bersama dan masuk ke SSH , Kelola kunci SSH , dan kunci Impor . Rekatkan ke kotak Publik , dan pastikan Anda menamainya nama yang tepat tanpa ekstensi-- milikku
id_rsa
. Sekarang Anda harus mengotorisasi kunci menggunakan tautan kelola otorisasi, sehingga akan digabungkan ke dalamauthorized_keys
file.Sekarang Git Gui dan Git Bash Anda harus dapat mendorong menggunakan SSH tanpa harus mengetikkan kata sandi. Anehnya, saya bisa mendorong menggunakan SSH via Git Bash dan Git Gui baik-baik saja di server saya sendiri yang menjalankan Linux, itu hanya hosting bersama yang memberi saya cocok. Saya harap ini membantu seseorang karena butuh waktu berjam-jam untuk membuat ini - dan ini sangat sederhana!
sumber
Jika Anda menggunakan baris perintah Git untuk Windows, Anda dapat melakukan hal berikut:
Buka
cmd.exe
dan jalankansetx HOME c:\PATH_TO_PRIVATE_KEY
.Buat folder baru
.ssh
,, (jika tidak ada) di dalamc:\PATH_TO_PRIVATE_KEY
dan salinid_rsa
file Anda (kunci pribadi Anda) ke dalamnya.Selesai. Sekarang Anda dapat menggunakan baris perintah Git secara normal.
sumber
Saya msysgit OpenSSL / pengalaman Bash Git (tidak Plink Putty) adalah bahwa urutan pencarian Anda yang
.ssh/
folder adalah sebagai berikut.%HOME%/.ssh/
%HOMEDRIVE%%HOMEPATH%/.ssh/
%USERPROFILE%/.ssh/
Karena itu mengapa banyak orang menyarankan pengaturan
HOME
jika salah satu dari yang lain tidak seperti yang Anda harapkan. Lebih penting lagi, Anda dapat memeriksa sendiri; untuk men-debug gunakanssh -v
ke server yang menggunakan otentikasi kunci publik sebagai berikut:Kami menemukan
ssh
pencarian di drive yang tidak jelas dan tidak ada jawaban sebelumnya yang menjelaskan apa yang kami lihat.Kadang
%HOMEDRIVE%%HOMEPATH%
- kadang adalah drive jaringan yang dipetakan (mis.H:/
) Yang menyebabkan kegagalan yang tidak perlu ketika ada masalah network / fileserver, bahkan ketika%USERPROFILE%/.ssh
adaC:/Users/Username/.ssh
dan memiliki kunci secara lokal. Pengaturan%HOME%
untuk%USERPROFILE%
menghentikannya melihat drive rumah jarak jauh.sumber
Anda juga dapat memuat Agen Putty (kontes) dan menambahkan kunci pribadi yang Anda buat dengan Putty untuk server.
Git mengenali ini dan menggunakannya untuk mendorong / menarik.
sumber
Saya menggunakan TortoiseGit dan Git Bash di Windows, tergantung kebutuhan. Saya telah menambahkan semuanya ke dalam TortoiseGit, dan itu bekerja dengan baik, tetapi Git Bash tidak mengambilnya meskipun kunci berada di direktori yang benar. Ternyata saya harus melakukan ini dari Git Bash:
Anda tentu saja dapat mengubah jalur ke mana pun kunci Anda berada, mengingat untuk digunakan
\\
sebagai pemisah.sumber
Jika menggunakan Git untuk Windows, setelah kunci SSH dibuat, Anda harus menambahkan kunci SSH Anda ke ssh-agent.
Lihat Menghasilkan kunci SSH baru dan menambahkannya ke ssh-agent .
sumber