Kami memiliki server benteng yang kami gunakan untuk terhubung ke beberapa host, dan .ssh / config kami telah berkembang menjadi lebih dari seribu baris (kami memiliki ratusan host yang kami sambungkan). Ini mulai menjadi sedikit sulit dan saya ingin tahu apakah ada cara untuk memecah file .ssh / config menjadi beberapa file. Idealnya, kami akan menentukan di suatu tempat bahwa file lain akan diperlakukan sebagai file .ssh / config, mungkin seperti:
~/.ssh/config
~/.ssh/config_1
~/.ssh/config_2
~/.ssh/config_3
...
Saya telah membaca dokumentasi di ssh / config, dan saya tidak melihat ini mungkin. Tetapi mungkin orang lain memiliki masalah yang sama dan telah menemukan solusi.
Jawaban:
The
~/.ssh/config
File tidak memiliki arahan untuk termasuk file lainnya, mungkin terkait dengan cek SSH untuk hak akses file.Saran seputar hal ini dapat mencakup skrip untuk membuat beberapa perubahan bersama-sama baik pada sistem atau melalui checkin hooks pada repositori. Orang mungkin juga melihat ke alat-alat seperti Wayang atau Augeas.
Bagaimanapun Anda mendekatinya, Anda harus menggabungkan file individual menjadi satu file dari luar file.
catatan: timpa:
>
vs tambahkan:>>
Pembaruan Desember 2017:
Dari 7.3p1 ke atas, ada opsi Sertakan. Yang memungkinkan Anda untuk memasukkan file konfigurasi.
sumber
Anda dapat menentukan file konfigurasi saat ini untuk digunakan dalam opsi ssh seperti ini:
Sepertinya itu satu-satunya cara.
Juga tidak ada lagi untuk memasukkan satu konfigurasi ke yang lain.
sumber
Dimulai dengan ssh 7.3 (dirilis pada 1 Agustus 2016),
Include
arahan tersedia.(Berikut ini tautan ke laporan bug yang diselesaikan, yang juga termasuk tambalan: https://bugzilla.mindrot.org/show_bug.cgi?id=1585#c24 )
sumber
config
file. Saya tidak tahu mengapa itu tidak berhasil di bagian bawah.Saya pribadi menggunakan perintah-perintah itu untuk mengkompilasi ssh config:
atau:
karena:
tidak bekerja untuk saya, kembali:
Semoga ini bisa membantu.
sumber
ssh -F <(cat .ssh/*.config)
akan ideal. Saya datang dengan ini juga, tapi saya mendapatkan kesalahan yang sama. Adakah yang tahu apa masalahnya di sini?Saya juga akan menggunakan
cat config_* > config
untuk menghasilkan seluruh konfigurasi. Tapi saya tidak akan menggunakan wayang / cfengine dll untuk ini, jika mereka belum di tempat (BTW: mengapa tidak menggunakan sistem manajemen konfigurasi ???).Saya akan menghasilkan paket (deb, rpm) dan meletakkannya di repositori lokal. Dan dalam skrip postinst, kucing menghasilkan konfigurasi Anda. Mungkin Anda juga memasukkan folder lokal ... Keuntungannya adalah, pembaruan ssh / config diaktifkan setiap hari saat cron-apt & Co dijalankan.
sumber
Anda bisa menggunakan Makefile di
~/.ssh
:Kemudian pindahkan yang ada
config
keconfig.in
dan jalankanmake
untuk menghasilkanconfig
.sumber
Saya telah bermain dengan konsep
config.d
direktori untuk pengaturan konfigurasi saya. Jadi untuk menambah tumpukan opsi di atas, inilah yang telah bekerja untuk saya.Struktur direktori adalah sesuatu seperti
Fungsi yang membangun ~ / .ssh / config dan hidup di run-config shell saya adalah sebagai berikut
Secara opsional tambahkan
sshMakeConfig
ke bagian bawah run-config Anda jika Anda ingin memastikan konfigurasi baru pada setiap sesi shellSetiap kali saya perlu mengkompilasi ulang ~ / .ssh / config saya, saya melakukannya dengan menjalankan
sshMakeConfig
beberapa bentuk (secara langsung, mencari run-config saya, atau memulai shell baru)sumber