Setiap kali saya menggunakan git untuk berinteraksi dengan remote, seperti ketika menarik atau mendorong, saya diperlihatkan pesan berikut:
Peringatan: Tambahkan '...' (RSA) secara permanen ke daftar host yang dikenal.
Bagaimana saya bisa mencegah pesan yang mengganggu ini tidak muncul? Itu hanya gangguan — semuanya berfungsi dengan baik.
The authenticity of host '...' can't be established. RSA key fingerprint is .... Are you sure you want to continue connecting (yes/no)?
, atau apakah Anda menekan itu? Jika ya, apakah sidik jari itu sama setiap kali? Jika tidak, itu benar - benar menakutkan . Pilihan yang kurang menakutkan adalah bahwa entah bagaimana sebenarnya tidak mengatur untuk menulis ke file host, jadi itu mencoba lagi setiap waktu. Silahkan lihat~/.ssh/known_hosts
?~/.ssh/known_hosts
? (Apakah terdaftar 5.000 kali?) Apakah~/.ssh/config
ada / mengandung sesuatu (terutama nilai untukStrictHostKeyChecking
)?known_hosts
file Anda buruk. Itu harus menjadi kunci host, pada satu baris yang sangat panjang. Jika Anda hanya memiliki nama host di sana (misalnya) itu tidak akan berfungsi. Saya sarankan Anda menghapus file ini (jika memang hanya berisi informasi untuk host tunggal ini) dan memungkinkan SSH untuk membuatnya lain kali Anda terhubung. Seharusnya diam setelah itu.Jawaban:
Solusi: buat
~/.ssh/config
file dan masukkan baris:Anda kemudian akan melihat pesan tersebut saat berikutnya Anda mengakses Github, tetapi setelah itu Anda tidak akan melihatnya lagi karena host ditambahkan ke
known_hosts
file. Ini memperbaiki masalah, bukan hanya menyembunyikan pesan log.Masalah ini mengganggu saya selama beberapa waktu. Masalah terjadi karena klien OpenSSH yang dikompilasi untuk Windows tidak memeriksa file known_hosts di
~/.ssh/known_hosts
ssh -vvvvvvvvvvvvvvvvvvv [email protected]
sumber
~/.ssh/id_rsa
) untuk terhubung ke server. Seperti @JeremiahGowdy sebutkan, saya punyadebug3: load_hostkeys: loading entries for host "172.16.3.101" from file "/dev/null"
. Mengapa SSH mulai menggunakan/dev/null
sebagai known_hosts setelah saya mengubah kunci?~
in~/.ssh/config
adalah folder home pengguna. Untuk membukanya dengan mudah, Tekan Win-R , ketikcmd
Enter . Command prompt seharusnya sudah terbuka di folder rumah Anda. Ketikcd .ssh
Enter , lalustart .
Enter untuk membuka folder di Windows Explorer. Kemudian Anda dapat membuat file konfigurasi di Notepad (tidak ada ekstensi .txt saat menyimpan). (Pengguna pro dapat gema langsung ke file baru di command prompt itu sendiri;)
). Jalankan perintah git yang melibatkan remote dua kali (sepertigit fetch
), dan Anda selesai.Tambahkan baris berikut ke file konfigurasi ssh Anda ($ HOME / .ssh / config):
Jika menjalankan ssh dari baris perintah tambahkan opsi berikut ke string perintah:
Misalnya, yang berikut ini mencetak versi gcc yang diinstal pada machine.example.org (dan tidak ada peringatan):
sumber
LogLevel=quiet
adalah ide yang buruk, dia ingin semua kesalahan ditampilkan, dia hanya ingin menghindari kesalahan yang menjengkelkan ini. Mungkin karena dia menipu ssh untuk digunakan/dev/null
sebagaiknown_hosts
file, mungkin karena dia ingin mematikanknown_hosts
pemeriksaan sidik jari, tetapi tidak bisa, karena ssh tuan tidak mengizinkannya.loglevel=error
masih menampilkan "Sambungan ke <server> ditutup" saat koneksi diputus, yang juga sangat menjengkelkan untuk skrip.Setel
LogLevel
keERROR
(bukanQUIET
) dalam~/.ssh/config
file untuk menghindari kesalahan ini:sumber
Pesan itu dari SSH, yang memperingatkan Anda bahwa Anda terhubung ke host yang belum pernah Anda hubungkan sebelumnya. Saya tidak akan merekomendasikan untuk mematikannya, karena itu berarti Anda mungkin kehilangan peringatan tentang perubahan kunci host, yang dapat menunjukkan serangan MITM pada sesi SSH Anda.
sumber
~/.ssh/known_hosts
dan lihat apakah tuan rumah Anda ada di sana.ssh-keyscan
.Untuk menekan pesan peringatan,
ssh
Anda dapat menambahkan baris berikut ke~/.ssh/config
:Itu akan menonaktifkan peringatan tetapi bukan pesan kesalahan. Seperti pengaturan lain di
~/.ssh/config
Anda dapat mengonfigurasiLogLevel
per-host jika Anda menginginkan kontrol yang lebih terdegradasi.sumber
Ini terutama berarti ada perubahan untuk kunci untuk host itu
~/.ssh/known_hosts
, dan itu tidak akan secara otomatis memperbaruinya. Karenanya setiap kali Anda mendapatkan pesan peringatan ini.Ini sering terjadi untuk menghubungkan ke mesin virtual yang dibuat ulang, yang mengubah kunci dengan alamat IP yang sama
Larutan
Jika Anda hanya memiliki satu entri, maka Anda dapat menghapus
~/.ssh/known_hosts
file, dan setelah koneksi pertama, bahwa kunci akan ada di sana, dan tidak ada pesan peringatan setelah itu.Jika Anda memiliki banyak entri, maka Anda dapat menggunakan perintah di bawah ini untuk menghapus
Ini bekerja dengan baik untuk saya
sumber
Jika Anda menggunakan repositori dari GitHub, pertimbangkan untuk menggunakan versi HTTPS dari URL, untuk menghindari masalah ini sepenuhnya:
Jika Anda mengkloning repositori Anda dari dalam aplikasi Windows GitHub, inilah yang digunakannya untuk URL jarak jauh. Mungkin mereka tahu sesuatu yang kita tidak tahu.
sumber
Saya memiliki pertanyaan yang sama, dan saya menemukan tidak ada
.ssh
file di file saya~
. Jadi saya hanya membuat.ssh
direktori di bawah~
jalur, dan masalah ini terpecahkan.sumber
Saya masuk ke masalah yang sama ketika saya mulai menggunakan mesin Windows. Dalam kasus saya itu karena pengaturan SSH saya tidak selesai. Github memiliki dokumentasi yang sangat tepat pada pengaturan SSH. Setelah itu ditangani, masalah terselesaikan.
https://help.github.com/articles/checking-for-existing-ssh-keys/ https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it- to-the-ssh-agent /
sumber
Tambahkan kunci ssh
file konfigurasi peti
tambahkan di bawah garis.
Kemudian tambahkan kunci pub dan tiru repositori Anda ... Selesai .....
sumber
Saya telah menghadapi kesalahan yang sama di Linux / Cent OS VM dan itu karena IP berubah setelah restart. Untuk mengatasi masalah ini, saya mendefinisikan IP statis di jaringan dan menambahkan entri itu ke file / etc / hosts. Untuk IP statis, sebutkan nilai rentang yang sedikit lebih tinggi. Misalnya jika IP Anda saat ini (ipconfig / ifconfig) adalah 192.168.0.102, kali berikutnya setelah restart ini mungkin menjadi 192.168.0.103. Jadi, tentukan IP statis Anda di pengaturan IPV4 sebagai 192.168.0.181 yang seharusnya bisa digunakan.
sumber
Dalam kasus saya, itu karena admin yang mengatur server mengatur opsi ini
~/.ssh/config
Yang bekerja dengan baik untuk sebagian besar kasus dengan tidak menggunakan
~/.ssh/known_hosts
file. Tetapi untuk repo gitlab perusahaan, setiap kali diberikan "Peringatan: Secara permanen ditambahkan ... ke daftar host yang dikenal."Solusi saya adalah mengomentari
UserKnownHostsFile /dev/null
baris, yang memungkinkan pembuatan~/.ssh/known_hosts
. Maka itu tidak memberikan peringatan lagi setelah itu.Anda mungkin juga memiliki entri lama / tidak valid di
known_hosts
.sumber
Saya mengambil solusi saya karena terus downvotes.
Itu adalah solusi terbaik tanpa benar-benar meretas kode sumber klien SSH itu sendiri.
Jika seseorang tertarik, periksa riwayat sunting.
sumber