Saya mencoba untuk mendorong perubahan dari repo lokal saya ke repo jarak jauh. Saat saya mengetik:
git push origin
Saya mendapatkan kesalahan berikut:
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Connection abandoned.
fatal: The remote end hung up unexpectedly
Bagaimana saya bisa memecahkan masalah ini? Saya menggunakan git dari baris perintah di Windows 7.
Edit
Ketika saya mencoba melakukan ssh sederhana
ssh user@hostname
Saya mendapatkan kesalahan berikut:
Could not create directory '/c//%HOMEDRIVE%%HOMEPATH%/.ssh'.
percent_expand: unknown key %H
Entah bagaimana itu tidak akan membuat direktori, karena jalurnya tidak valid. Bagaimana cara mengatasinya?
@eckes: Edit2
Rumah saya disetel ke %HOMEDRIVE%%HOMEPATH%
apakah ini benar?
$HOME
tidak diatur dengan benar. Cobalah untuk mengaturHOME
variabel lingkungan pada windows menggunakanMy Computer
-> klik kanan ->Properties
-> TabAdvanced
-> TombolEnvironment Variables
/c//
(mungkin huruf drive) Anda masih memiliki%HOMEDRIVE%
... Anda mungkin bisa menghemat waktu dengan mengutak-atik nilainya sendiri, dan mengulanginya?HOMEDRIVE
danHOMEPATH
setelHOME
ke nilai yang dihasilkan ...Jawaban:
Pesan tersebut berarti bahwa kunci host
origin
tidak ada di file host tepercaya Anda.Untuk menyiasati ini, buka koneksi SSH biasa ke
origin
dan SSH akan menanyakan apakah Anda ingin mempercayai host jarak jauh (dari konsol Git):Jika Anda mempercayai host jarak jauh (yaitu tipe
yes
), SSH akan menambahkan kuncinya ke daftar host yang dikenal.Setelah itu, Anda harus bisa melakukan
git push origin
.Sebagai alternatif, Anda juga dapat menambahkan kunci
origin
ke secara manual.ssh/known_hosts
tetapi ini mengharuskan Anda untuk mematuhi formatknown_hosts
file seperti yang dijelaskan di halaman manualsshd
(Bagian FORMAT FILE AUTHORIZED_KEYS ).sumber
known_hosts
file saya .Bagi anda yang sedang melakukan setting MSYS Git di Windows menggunakan PuTTY melalui command prompt standar, cara menambahkan host ke cache PuTTY adalah dengan menjalankan
Sebagai contoh:
Jawab saja
y
, lalu Ctrl + C sisanya.Periksa sidik jarinya. Peringatan ini ada untuk alasan yang bagus. Sidik jari untuk beberapa layanan git (harap edit untuk menambahkan lebih banyak):
16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
7e:af:8d:ec:f0:39:5e:ba:52:16:ce:19:fa:d4:b8:7d
sumber
plink
dengan menjalankan$ set | grep GIT_SSH
dan memeriksaGIT_SSH='C:\Program Files (x86)\PuTTY\plink.exe'
-P
untuk memilih port, seperti:plink.exe example.com -P 2222
. Saya dapat mengkloning dari github tetapi tidak dari server pribadi saya, dan ini membuat saya bingung sampai akhir.Coba lakukan "set | grep -i ssh" dari prompt Git Bash
Jika pengaturan Anda seperti milik saya, Anda mungkin memiliki set ini:
Saya melakukan
dan berhasil setelah itu, .. Saya kira dempul menyimpan kuncinya di tempat lain sebagai $ HOME / .ssh atau sesuatu ... (Saya juga punya masalah pada kotak di mana $ HOME disetel ke "C: \ Users \ usrnam "bukan" / C / Users / usrnam / "
bagaimanapun, jarak tempuh Anda mungkin berbeda, tetapi itu tetap untuk saya. :-)
(mungkin hanya melakukan GIT_SSH yang tidak disetel sudah cukup, tetapi saya berhasil)
Catatan: jika tidak disetel tidak berhasil untuk Anda, coba ini:
sumber
unset GIT_SSH
bekerja untuk saya juga, meskipun saya harus melakukannya setiap kali saya meluncurkan git bash yang cukup membosankan. Ada ide tentang cara mengotomatiskan itu?Saya menduga bahwa
GIT_SSH
variabel lingkungan Anda disetel ke%ProgramFiles(x86)%\putty\plink.exe
. Untuk beberapa alasan, PLink tidak menggunakan.ssh/known_hosts
file di direktori pengguna Anda untuk menyimpan kunci host jarak jauh.Jika ini benar-benar kasus Anda, dan mungkin memang sengaja jika Anda ingin menggunakan kontes, Anda perlu menggunakan PLink untuk terhubung ke host terlebih dahulu.
Anda harus mendapatkan pesan serupa
Setelah Anda menjawab
y
pertanyaan dan berhasil terhubung ke host jarak jauh, Anda harus siap. Silakan dan coba dorong Anda lagi.sumber
"$GIT_SSH" -P 7999 [email protected]
Hanya ssh'ing ke host saja tidak cukup, setidaknya di Windows. Itu menambahkan kunci host ke
ssh/known_hosts
tetapi kesalahan masih berlanjut.Anda perlu menutup jendela git bash dan membuka yang baru. Kemudian cache registri dihapus dan push / pull kemudian berfungsi.
sumber
ssh/known_hosts
relatif dengan apa ?,% USERPROFILE% Saya mengalami masalah ini di Win 7, dan tidak ada solusi ...Rene,
HOME
variabel Anda tidak disetel dengan benar. Ubah menjadic:\Users\(your-username)
atau hanya menjadi%USERNAME%
.sumber
Solusi dengan Plink
Simpan skrip python ini ke
known_hosts.py
:Diuji pada Win7x64 dan Python 2.7 .
Lalu lari:
Dan pilih untuk mengimpor ke registri. Keycan akan mengambil kunci publik untuk domain (saya memiliki masalah dengan bitbucket), dan kemudian skrip python akan mengubahnya menjadi format Plink.
sumber
Punya masalah yang sama, dan lupa untuk terhubung ke SSH di port di mana sebenarnya repositori , bukan hanya port SSH umum, maka kunci host berbeda!
sumber
Buka saja Putty dan coba buat koneksi ke server jarak jauh yang ingin Anda masukkan kode Anda. ketika dialog muncul tekan Yes (you trust remote) maka semuanya akan beres.
sumber
Lingkungan kerja:
Pertama: Hapus dempul known_hosts di register menurut Regedit.
Kemudian: Menjalankan perintah
%GIT_SSH% user@hostname
di cmd Window menyelesaikan masalah.Semoga bisa membantu Anda semua.
sumber
Saya juga mengalami masalah yang sama ketika mencoba mengkloning repositori di mesin Windows 7 saya. Saya mencoba sebagian besar jawaban yang disebutkan di sini. Tak satu pun dari mereka berhasil untuk saya.
Apa yang berhasil untuk saya adalah, menjalankan program Pageant (Agen otentikasi Putty). Setelah Pageant berjalan di latar belakang, saya dapat mengkloning, mendorong & menarik dari / ke repositori. Ini berhasil untuk saya, mungkin karena saya telah mengatur kunci publik saya sedemikian rupa sehingga setiap kali kunci itu digunakan untuk pertama kali diperlukan kata sandi & Kontes dimulai.
sumber
Connection abandoned
, tapi sesuatu sepertiAccess denied (private key)
Mengubah dari PuTTY ke OpenSSH memperbaiki masalah ini untuk saya, tanpa perlu membatalkan pengaturan GIT_SSH, dll.
sumber
Saya memecahkan masalah serupa menggunakan solusi ini .
Anda hanya perlu beralih ke Embedded Git, tekan, tekan tombol Yes dan kemudian beralih kembali ke System Git.
Anda dapat menemukan opsi ini di
sumber
C:\Users\{UserName}\AppData\Local\SourceTree\app-2.5.5\tools\putty> .\plink.exe {YourNewHost}
Seperti yang dijawab oleh Roman Starkov ,
plink
perlu menambahkan host ke cache itu.Untuk orang yang menggunakan Ekstensi Git :
(ganti dengan jalur sebenarnya)
misalnya
Catatan : Pastikan untuk menggunakan plink / klink yang sama dengan yang digunakan Git Extensions!
sumber
Menambahkan host secara langsung dengan Bash tidak menyelesaikan masalah, kesalahan masih terjadi saat menggunakan 'Ambil semua' di Ekstensi Git. Dengan menggunakan 'Tarik' pada satu cabang, host yang diperlukan ditambahkan secara otomatis oleh Ekstensi Git dengan layar pop-up Bash. Setelah melakukan ini, saya dapat menggunakan 'Ambil Semua' lagi. Tidak yakin apa yang dilakukan oleh Git Extensions secara berbeda.
sumber
Saya telah mencoba semua metode di atas tetapi tidak satupun dari mereka dapat memperbaiki masalah yang sama di laptop saya. Akhirnya alih-alih mendorong cabang ke asal di git bash, saya beralih untuk menggunakan opsi dorong TortoiseGit untuk melakukan dorongan, kemudian sebuah jendela muncul untuk meminta saya menambahkan kunci host baru ke cache, setelah mengklik tombol ya, semuanya berjalan baik-baik saja sekarang.
Semoga bisa membantu Anda semua.
sumber
Saya mengubah hard disk, menginstal Windows. Ketika mencoba untuk mengunggah file menerima jendela perintah ini.
Saya menekan "y", lalu Ctrl + C. Dibuka
putty.exe
, menambahkan kunci lama dan kembali ke git dan mendorong file.sumber
Cukup hapus instalan Ekstensi Git dan Instal lagi dengan memilih OpenSSH daripada
sumber
Di Windows 7 atau 10, trik yang berhasil untuk saya adalah menghapus variabel sistem GIT_SSH. Itu diatur sebelumnya untuk menggunakan Plink, dan sekarang digantikan oleh Putty. Ini menyebabkan kesalahan Plink.exe
Ada juga instalasi lama Git (versi 32-bit) dan memperbarui ke Git (mis. Git-2.20.1-64-bit.exe) karena PC menggunakan OS 64-bit.
Pokoknya Putty / Plink bahkan tidak digunakan oleh Git karena dalam instalasi Git, secara default menggunakan Open SSH.
sumber
Jika Anda menerima pesan tentang kunci host yang tidak dikenal saat melakukan operasi git push / pull menggunakan ATLASSIAN SOURCETREE, Anda tidak memiliki kemampuan untuk menjawab y / n dan operasi dorong / tarik akan dibatalkan tanpa menyimpan kunci tersebut. Namun pergi ke SourceTree Tools-> Options (Tab Umum) dan mengubah Klien SSH di bawah (di bawah Konfigurasi Klien SSH) dari PuTTY ke OpenSSH akan memungkinkan kunci untuk di-cache tanpa mengubah apa pun.
sumber