Saya dapat terhubung ke mesin Ubuntu lain di LAN saya melalui SSH. Pada kedua PC saya menginstal openssh-server tetapi dari komputer Ubuntu lain saya tidak dapat terhubung ke PC saya melalui SSH dan saya mendapatkan kesalahan ini:
Verifikasi kunci host gagal ...
ssh
dari baris perintah.Jawaban:
"Tuan rumah verifikasi kunci gagal" berarti bahwa tuan kunci remote host berubah.
SSH menyimpan kunci host dari host jarak jauh di
~/.ssh/known_hosts
. Anda dapat mengedit file teks secara manual dan menghapus kunci lama (Anda dapat melihat nomor baris dalam pesan kesalahan), atau menggunakanDari halaman manual :
(yang saya pelajari dari jawaban untuk Apakah mungkin untuk menghapus kunci host tertentu dari file SSH's known_hosts? ).
sumber
rm ~/.ssh/*
, makassh -o BatchMode=yes root@somewhere
, jika tidak ada hal lain yang salah, saya akan mendapatkan.Host key verification failed.
Tidak penting jika Anda selalu interaktif, tetapi relevan untuk skrip yang mengalami kesalahan yang sama.ssh-keygen -R example.net:7999
hasilHost example.net:7999 not found in known_hosts
.known_hosts
file dan ssh lagi. Itu berhasil.~/.ssh/known_hosts
tidak dapat dibacaJika Anda menjalankan dalam situasi skrip / jarak jauh tertentu di mana Anda tidak memiliki akses interaktif ke kunci host-to-add-host, atasi seperti ini:
Peringatan: Secara permanen menambahkan 'something.example.com, 10.11.12.13' (RSA) ke daftar host yang dikenal.
sumber
sh """ssh -o StrictHostKeyChecking=No ec2-user@someIpAddress-e2e sudo service tomcat restart"""
Terkadang juga ada situasi ketika Anda bekerja pada konsol serial, kemudian memeriksa perintah di atas dalam mode verbose
-v
akan menunjukkan Anda/dev/tty
tidak ada, sementara itu ada.Dalam kasus di atas, cukup hapus
/dev/tty
dan buat symlink/dev/ttyS0
ke/dev/tty
.Sebagai alternatif, tambahkan
id_rsa.pub
ke lokasi jarak jauh, sehingga kata sandi tidak diminta dan Anda mendapatkan akses masuk.sumber
Dalam kasus saya, ini disebabkan oleh masalah udev - tidak ada
/dev/tty
simpul perangkat. Solusi bagi saya adalah:sumber
Di terminal:
Pesan berikut, atau yang serupa, akan muncul:
Kemudian, sambungkan ke EC2 Anda seperti biasa:
sumber
command-line line 0: Bad yes/no/ask argument.
karena Anda salah menggunakan 'Tidak' alih-alih 'tidak' sebagai argumen untukStrictHostKeyChecking
Yah, itu hanya karena ubuntu kedua memerlukan koneksi dengan kunci dan bukan kata sandi.
Saya sarankan Anda menggunakan
sudo dpkg-reconfigure openssh-server
PC Anda, dan kemudian itu akan berfungsi dengan baik. Ini akan mengatur ulang konfigurasi untuk openssh dan harus kembali ke otentikasi kata sandi standar.Kemungkinan kedua adalah bahwa sudah ada kunci untuk ubuntu Anda yang lain di PC Anda, dan itu berubah sehingga tidak dikenali lagi. Dalam hal ini, Anda harus mengedit file
.ssh/authorized_keys
untuk menghapus baris bermasalah mengidentifikasi ubuntu Anda.sumber
Ini adalah utas lama dan saya hanya berlari melintasi jawaban ini, saya hanya akan menambahkan apa yang saya lakukan untuk menyelesaikan ini.
Saya hanya melihat pesan kesalahan yang dilemparkan ke saya dan dikatakan untuk menjalankan perintah itu untuk menghapusnya dari daftar host. Setelah itu saya melakukan yang berikut:
Kemudian saya mengikuti petunjuk dari sana sampai saya bisa ssh ke server.
sumber
Ini berarti kunci host jarak jauh Anda diubah (Mungkin perubahan kata sandi host),
Terminal Anda menyarankan untuk menjalankan perintah ini sebagai pengguna root
Anda harus menghapus nama host dari daftar host di pc / server Anda. Salin perintah yang disarankan dan jalankan sebagai pengguna root.
Semoga ini berhasil.
sumber
Anda harus mengubah kunci Anda dengan cara ini: Dari kesalahan yang Anda temukan, temukan kunci-host mana yang berubah, misalnya: Kunci ECDSA yang menyinggung di / Pengguna / pengguna-.
Perhatikan: Anda harus menjadi root atau memiliki hak istimewa untuk sudo.
sumber
Anda harus meletakkan kunci rsa dari host target ke host sumber
/home/user/.ssh/known_hosts
dengan menjalankan ini pada targetsumber
Mungkin Anda hanya perlu memasukkan "ya" ketika ssh mengonfirmasi bahwa Anda ingin terus terhubung.
Seperti di bawah.
Lalu masukkan kata sandi Anda.
Harap perhatikan "Apakah Anda yakin ingin terus terhubung (ya / tidak)? Ya ". Anda harus memasukkan ya, bukan masuk.
sumber
Selain secara ketat menonaktifkan pemeriksaan kunci host, Anda juga dapat terhubung dengan mengetik:
sumber
pico ~/.ssh/known_hosts
dan hapus semua baris, setelah terhubung kembali dan Anda akan mendapatkan kunci baru.sumber
ssh-keygen -R hostname
lebih baik.Solusi saya berasal dari posting blog ini: Negosiasi algoritma gagal untuk SSH Secure Shell Client
Anda perlu memodifikasi file sebagai berikut:
Dan kemudian tambahkan yang berikut ini:
Pada dasarnya Anda mencoba berbagai solusi sampai Anda menemukan satu yang dapat menyelesaikan masalah Anda. Jika solusi di atas tidak berhasil, silakan coba yang ini. Jika yang ini tidak berhasil juga, silakan coba yang lain.
sumber
Lakukan saja "sudo vi /var/root/.ssh/known_hosts" dan hapus baris, yang menyimpan kunci untuk host yang Anda coba sambungkan dan hubungkan kembali.
Saya tidak tahu tentang situasi khusus Anda, tetapi kemungkinan besar kesalahan ini muncul bersama pesan seperti ini:
Jika Anda akan membaca log dengan lebih hati-hati, Anda akan melihat bahwa kunci yang Anda dapatkan dari sebuah host bertentangan dengan kunci yang sudah Anda miliki - dalam hal ini ada di baris 74 dari file known_hosts (Kunci ECDSA yang menyinggung di / var / root / .ssh / known_hosts: 74). Hapus baris dari the known_hosts, simpan perubahan dan hubungkan kembali.
sumber
adalah solusi tty lain - kadang-kadang, file perangkat ini memiliki izin yang salah.
sumber