GNU/Linux >> Belajar Linux >  >> Linux

Bisakah Anda memiliki lebih dari satu file ~/.ssh/config?

Solusi 1:

~/.ssh/config file tidak memiliki arahan untuk menyertakan file lain, mungkin terkait dengan pemeriksaan SSH untuk izin file.

Saran seputar hal ini dapat menyertakan skrip untuk melakukan beberapa perubahan bersama baik di sistem atau melalui kait checkin di repositori. Seseorang mungkin juga melihat alat seperti Wayang atau Augeas.

Namun, bagaimanapun Anda mendekatinya, Anda harus menggabungkan file individual menjadi satu file dari luar file.

$ cat ~/.ssh/config_* >> ~/.ssh/config

catatan: timpa:> v.s. tambahkan:>>

Pembaruan Desember 2017:

Dari 7.3p1 dan lebih tinggi, ada opsi Sertakan. Yang memungkinkan Anda menyertakan file konfigurasi.

Include
    Include the specified configuration file(s).  Mul‐
    tiple pathnames may be specified and each pathname
    may contain glob(3) wildcards and, for user config‐
    urations, shell-like “~” references to user home
    directories.  Files without absolute paths are
    assumed to be in ~/.ssh if included in a user con‐
    figuration file or /etc/ssh if included from the
    system configuration file.  Include directive may
    appear inside a Match or Host block to perform con‐
    ditional inclusion.

Solusi 2:

Anda dapat menentukan file konfigurasi saat ini untuk digunakan dalam opsi ssh seperti ini:

ssh -F /path/to/configfile

Sepertinya itu satu-satunya cara.

Juga tidak ada cara untuk memasukkan satu konfigurasi ke konfigurasi lainnya.

Solusi 3:

Dimulai dengan ssh 7.3 (dirilis pada 1 Agustus 2016), sebuah Include direktif tersedia.

Sertakan :Sertakan file konfigurasi yang ditentukan. Beberapa nama jalur dapat ditentukan dan setiap nama jalur dapat berisi globwildcard dan referensi "~" mirip-shell ke direktori home pengguna. File tanpa jalur absolut diasumsikan dalam ~/.ssh . SebuahInclude direktif mungkin muncul di dalam Match atau Host blokir untuk melakukan penyertaan bersyarat.

(Berikut adalah tautan ke laporan bug yang telah diselesaikan, yang juga menyertakan tambalan:https://bugzilla.mindrot.org/show_bug.cgi?id=1585#c24)

Solusi 4:

Saya pribadi menggunakan perintah tersebut untuk mengkompilasi ssh config:

alias compile-ssh-config='echo -n > ~/.ssh/config && cat ~/.ssh/*.config > ~/.ssh/config'
alias ssh='compile-ssh-config && ssh'
# (This will get used by other programs depending on the ~/.ssh/config)
# (If you need you can run the compile-ssh-config command via cron etc.)

atau:

alias compile-ssh-config='echo -n > ~/.ssh/config-compilation && cat ~/.ssh/*.config > ~/.ssh/config-compilation'
alias ssh='compile-ssh-config && ssh -F ~/.ssh/config-compilation'
# (This is saver and won't over write an existing ~/.ssh/config file)

karena:

alias ssh='ssh -F <(cat .ssh/*.config)'

tidak bekerja untuk saya, mengembalikan:

ssh: Can't open user config file /dev/fd/63: Bad file descriptor

Semoga ini bisa membantu.

Solusi 5:

Saya juga akan menggunakan cat config_* > config untuk menghasilkan seluruh konfigurasi. Tapi saya tidak akan menggunakan boneka/cfengine dll untuk ini, jika belum ada (BTW:mengapa tidak menggunakan sistem manajemen konfigurasi???).

Saya akan membuat paket (deb, rpm) dan meletakkannya di repositori lokal. Dan dalam skrip postinst, cat membuat konfigurasi Anda. Mungkin Anda juga menyertakan folder lokal... Keuntungannya adalah, pembaruan ssh/config diaktifkan setiap hari saat cron-apt &Co berjalan.


Linux
  1. cetak konten lebih dari satu file dalam arsip zip

  2. substitusi xargs lebih dari satu argumen

  3. Bagaimana saya bisa menambahkan alamat IPv6 dengan ID lingkup ke file konfigurasi ssh?

  1. Apakah Anda pernah memeras server?

  2. Lokasi non-default untuk file konfigurasi ssh di Linux

  3. Mengapa saya tidak bisa membuat file lebih besar dari 2 GB di Linux?

  1. Df Mengatakan Saya Memiliki 20g Lebih Banyak Ruang Disk yang Digunakan Daripada Du. Mengapa??

  2. Apakah>&- Lebih Efisien Daripada>/dev/null?

  3. Apakah Saya Membutuhkan Ruang Tukar Jika Saya Memiliki Jumlah Ram Lebih Dari Cukup?