Seperti kebanyakan sysadmin saya menggunakan openssh setiap saat. Saya memiliki sekitar selusin kunci ssh, saya ingin memiliki kunci ssh yang berbeda untuk setiap host. Namun ini menyebabkan masalah ketika saya terhubung ke host untuk pertama kalinya, dan yang saya miliki hanyalah kata sandi. Saya hanya ingin terhubung ke host menggunakan kata sandi, tidak ada kunci ssh dalam hal ini. Namun klien ssh akan menawarkan semua kunci publik di ~/.ssh/
(saya tahu ini dari melihat keluaran ssh -v
). Karena saya memiliki begitu banyak, saya akan terputus karena terlalu banyak kegagalan otentikasi.
Apakah ada cara untuk memberi tahu klien ssh saya untuk tidak menawarkan semua kunci ssh?
ssh
public-key
private-key
Rory
sumber
sumber
Jawaban:
Ini adalah perilaku yang diharapkan menurut halaman manual dari
ssh_config
:Pada dasarnya, menetapkan
IdentityFile
hanya menambah kunci ke daftar saat ini agen SSH sudah disajikan kepada klien.Coba timpa perilaku ini dengan ini di bagian bawah
.ssh/config
file Anda :Anda juga dapat mengesampingkan pengaturan ini di tingkat host, misalnya:
sumber
ssh -o "IdentitiesOnly true" -v -A user@host
apa yang saya gunakan untuk masuk ke mesin yang tidak memiliki kunci saya tetapi saya ingin menawarkan penerusan agen untuk melanjutkan. (-v
untuk debugging verbose).yes
(dan tidaktrue
)?IdentitiesOnly
mungkin tidak selalu membantu, Anda mungkin harus mengecualikan host secara khusus; lihat superuser.com/questions/859661/…Meskipun orang lain telah mengisyaratkan hal ini dengan solusi berbasis konfigurasi, mungkin perlu menunjukkan bahwa Anda dapat dengan mudah melakukan ini satu kali saja pada baris perintah dengan:
sumber
Mengikuti solusi James Sneeringer, Anda mungkin hanya ingin mengatur ssh_config di sepanjang baris:
Jika Anda terhubung dengan kunci tertentu ke banyak mesin yang tidak berada dalam domain yang sama, pertimbangkan untuk memberi mereka semua CNAME di DNS Anda sendiri. Saya melakukan ini dengan semua sistem pelanggan.
sumber
Mirip dengan solusi user23413, Anda dapat menonaktifkan otentikasi kunci publik sama sekali untuk host tertentu (atau pola wildcard):
sumber
Jika Anda menunjuk ke file kunci tertentu dengan ssh -i / path / to / key, ia hanya akan menggunakan yang itu bahkan jika orang lain dimasukkan ke dalam agen, dan Anda tidak akan dimintai kata sandi. Anda juga dapat mengedit Anda ~ / .ssh / config dan iklankan sesuatu seperti ini ...
Host foo.example.com
IdentityFile .ssh / id_rsa_foo.example.com
Anda juga bisa melakukan ...
Host * .example.org
IdentityFile .ssh / id_rsa_example.org
sumber
IdentitiesOnly
hanya dengan keinginan itu.