Apakah ada cara mudah untuk memperbarui informasi di hosting yang dikenal ketika Anda tahu bahwa kunci host telah berubah?

38

Jika sistem operasi host telah diinstal ulang dan kunci publiknya diregenerasi setelah itu tentu saja akan gagal karena kunci baru tidak cocok dengan yang lama.

Apakah ada cara yang lebih mudah untuk memberi tahu ssh bahwa Anda tahu bahwa kunci host telah berubah dan Anda ingin memperbaruinya. Saya pikir itu agak rawan kesalahan untuk menggunakan editor teks atau sesuatu seperti sed untuk menghapus baris yang menyinggung.

Sam
sumber
Ini menggandakan pertanyaan tentang pengguna super . Lihat informasi lebih rinci di sana.
Yitz

Jawaban:

59

Gunakan ssh-keygen -R hostnameuntuk menghapus nama host dari file known_hosts Anda. Lain kali Anda terhubung, kunci host baru akan ditambahkan ke file known_hosts Anda.

jsbillings
sumber
12
TARGET_HOST=[hostname or IP]

# Remove the old key(s) from known_hosts
ssh-keygen -R $TARGET_HOST

# Add the new key(s) to known_hosts (and also hash the hostname/address)
ssh-keyscan -H $TARGET_HOST >> ~/.ssh/known_hosts

Lain kali Anda terhubung, Anda akan terhubung tanpa diminta Are you sure you want to continue connecting (yes/no)?karena kunci sudah ada dalam known_hostsfile.

Earl Ruby
sumber
1
lihat juga StrictHostKeyChecking in ~ / .ssh / config
Jeff Schaller
2
Saya akan menggunakan nama variabel yang berbeda .... HOST ada dalam beberapa shell yang memberikan nama host Anda sendiri, jadi saya lebih suka untuk tidak mengubahnya (saya tahu seseorang bisa keluar, atau melakukan ini dari subkulit, tetapi masih , mengapa tidak thehostsebaliknya atau sesuatu variabel ALLCAPS bisa bertabrakan dengan nama internal yang disediakan nama Smallcase tidak harus)?...
Olivier Dulac
Kunci-kunci ini di known_hosts diawali oleh beberapa hal yang dimulai dengan | 1 |. Hal-hal itu tidak ditambahkan ke file melalui metode ini, atau apakah saya salah? lalu apa bedanya, karena apa yang dikembalikan ssh-keyscan tidak dimulai dengan | 1 |
Daniel F
1
(@ DanielF +) jika Anda menggunakan format hash dan menerima kunci di sshsana terdapat entri terpisah untuk nama host dan alamatnya, jadi Anda harus ssh-keygen -R masing - masing menghindari konflik
dave_thompson_085