Otomatis menambahkan host dan IP ke host yang dikenal


0

Saya ingin menghilangkan beberapa peringatan yang saya dapatkan ketika menjalankan lingkungan build otomatis (Scrutinizer-CI, tepatnya).

Menggali di sini, saya telah menemukan solusi ini yang dapat saya tambahkan ke skrip yang menyiapkan wadah:

ssh-keyscan -H -p 1234 domain.tld >> ~/.ssh/known_hosts

Sepertinya ini bukan cara terbaik untuk melakukannya. Tidak yakin apakah itu masalah keamanan atau apa, tetapi peringatan tentang tuan rumah hilang.

Masalahnya adalah bahwa saya masih mendapatkan peringatan untuk IP yang diselesaikan domain.

Saya kira ini adalah satu-satunya masalah ssh-keyscan -H -p 1234 123.231.321.213 >> ~/.ssh/known_hosts

Tetapi bagaimana jika saya tidak tahu IP, atau jika tuan rumah tidak selalu menyelesaikan ke IP yang sama?

Ada beberapa perintah / skrip yang bisa saya tulis untuk menyelesaikan IP dan meneruskannya ke skrip di atas?

Jawaban:


1

Anda bisa menggunakan diguntuk mendapatkan IP dan kemudian meneruskannya ke ssh-keyscan.

Contoh dengan xargs:

dig -t a +short www.yahoo.com | grep ^[0-9] | xargs -r -n1 ssh-keyscan -H -p 1234 >> ~/.ssh/known_hosts

Contoh dengan for for:

for ip in $(dig -t a +short www.yahoo.com | grep ^[0-9]); do ssh-keyscan -H -p 1234 $ip; done >> ~/.ssh/known_hosts

-Rich Alloway (RogueWave)


dapatkah Anda menjelaskan mengapa saya perlu menggunakannya | grep ^[0-9] | xargs -r -n1? Menggunakan salah satu atau contoh lainnya, saya mendapatkan banyak kesalahan. Sebagai gantinya, menggunakan ssh-keyscan -H -p 10022 $(dig -t a +short domain.tld)saya mendapatkan apa yang tampaknya menjadi hasil yang sah. Bahkan, hanya dig -t a +short domain.tldmengembalikan satu alamat IP.
Andrea Sciamanna

Saya bermaksud menyebutkan Anda, tetapi ternyata saya gagal: itu upaya kedua :) @RichAlloway
Andrea Sciamanna

1
Tidak masalah @AndreaSciamanna! The | grep ^[0-9]hanya menggunakan IP dikembalikan oleh penggalian (jika hostname dimulai dengan angka, grep akan perlu dimodifikasi untuk lebih mengenali IP). Saat menguji dengan www.yahoo.com, saya mendapatkan dua IP dan 'fd-fp3.wg1.b.yahoo.com.', Yang merupakan CNAME untuk www.yahoo.com, dalam output gali. ssh-keyscan tampaknya berperilaku dengan periode trailing, tapi saya ingin mengecualikan CNAME. The | xargs -r -n1menciptakan satu eksekusi ssh-keyscan per hasil, tetapi tidak mengeksekusi ssh-keyscan sama sekali jika tidak ada hasil.
Rich Alloway - RogueWave
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.