Saya punya daftar server:
cat list.txt
10.10.10.10 servera
10.11.10.10 serverb
Bagaimana saya dapat memeriksa bahwa saya dapat masuk melalui ssh kepada mereka atau tidak? Maksud saya secara default saya harus bisa login melalui ssh key auth .., jadi singkatnya, saya butuh solusi yang mengurutkan baris (server) di list.txt seperti ini:
- server yang saya dapat masuk melalui kunci ssh
- server yang meminta kata sandi (tentu saja kata sandi tidak dikenal ..)
- server yang tidak dapat dijangkau
ping
sebenarnya bukan indikator yang baik. Ada banyak pengaturan yang memungkinkanssh
koneksi tetapi tidak membalas ping.Jawaban:
Anda dapat melakukannya dengan kombinasi
BatchMode
opsi dan "parsing" output. (ssh
selalu mengembalikan 255 jika gagal terhubung karena alasan apa pun, jadi Anda tidak dapat menggunakan kode pengembalian untuk membedakan antara jenis kegagalan.)Dengan
BatchMode
aktif, tidak ada prompt kata sandi atau interaksi lainnya yang dicoba, sehingga koneksi yang memerlukan kata sandi akan gagal. (Saya juga meletakkanConnectTimeout
di sana yang harus disesuaikan agar sesuai dengan kebutuhan Anda. Dan mengambil nama file yang sangat buruk.)Anda dapat mendeteksi jenis kesalahan lainnya (seperti kunci publik server yang hilang) jika Anda memerlukan klasifikasi lebih rinci. Jika Anda membutuhkan hasil dalam satu file, diurutkan, hanya
cat
berbagai file output sesuai keinginan Anda.sumber
Cari berbagai alat yang mengotomatiskan menjalankan perintah pada banyak host melalui ssh. Misalnya, dengan Mussh :
Pijat hasilnya sesuai kebutuhan.
Catatan: mengapa Anda menyimpan alamat IP
list.txt
? Nama server sudah cukup. Jika nama yang ingin Anda gunakan bukan nama DNS, gunakanHost
arahan dalam~/.ssh/config
.sumber
harapkan akan memberikan input ke perintah interaktif Anda. Klien ssh dengan flag -v akan memberi tahu Anda metode auth yang diterima server. Jika Anda masuk ke prompt interaktif, buat berhenti. Lakukan apa yang Anda inginkan, Anda memiliki semua yang Anda butuhkan.
Sama, satu perintah untuk memerintah mereka semua, dan dalam kegelapan, ikat mereka ... Hum.
sumber
Perintah mussh hanya akan menampilkan kesalahan sehingga Anda bisa menjalankannya tanpa debug.
sumber