membuat host ssh global untuk semua pengguna di komputer

15

Jadi SSH memiliki file-file ini yang mengkonfigurasi pengaturan untuk pengguna tertentu.

~/.ssh/authorized_keys
~/.ssh/config
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
~/.ssh/known_hosts

Saya ingin mengglobal beberapa file ini, seperti configdan known_hosts. Sehingga pengguna lain (termasuk root ) dapat berbagi host yang dikonfigurasi.

apa jalan terbaik melakukan ini?

Stefan
sumber

Jawaban:

21

Untuk ~/.ssh/configAnda dapat menempatkan pengaturan seluruh sistem yang relevan di / etc / ssh / ssh_config sesuai dengan halaman manual :

ssh (1) memperoleh data konfigurasi dari sumber berikut dalam urutan sebagai berikut:

  1. opsi baris perintah
  2. file konfigurasi pengguna (~ / .ssh / config)
  3. file konfigurasi seluruh sistem (/ etc / ssh / ssh_config)

Untuk setiap parameter, nilai yang diperoleh pertama akan digunakan. File konfigurasi berisi bagian yang dipisahkan oleh spesifikasi "Host", dan bagian itu hanya berlaku untuk host yang cocok dengan salah satu pola yang diberikan dalam spesifikasi.

Perhatikan bahwa hanya nilai pertama yang akan digunakan, yang berarti bahwa pengguna selalu dapat mengesampingkan opsi konfigurasi seluruh sistem secara lokal.

Untuk ~/.ssh/known_hostsAnda dapat menggunakan /etc/ssh/ssh_known_hostsatau file lain yang ditentukan oleh opsi konfigurasi GlobalKnownHostsFile:

GlobalKnownHostsFile

Menentukan file yang akan digunakan untuk database kunci host global alih-alih / etc / ssh / ssh_known_hosts.

Saya tidak yakin apakah itu mungkin untuk file lain, tapi saya kira Anda bisa menyelesaikan sesuatu dengan symlink jika Anda benar - benar ingin berbagi kunci pribadi di antara pengguna.

Steven D
sumber
1
Anda mendapatkan kesalahan ketik dalam kutipan GlobalKnownHostsFile Anda.
cjm
1
Anda dapat mengatur UserKnownHostsFile = / dev / null ssh tidak akan pernah menemukan kunci yang valid di dalam file pengguna known_hosts tetapi pengguna masih dapat menerima satu sementara.
Janning
1
@ Janning, sepertinya sebenarnya ada IgnoreUserKnownHostsopsi untuk itu (nilai yesatau no).
kael
Perhatikan bahwa /etc/ssh/ssh_known_hostsfile global harus dapat dibaca dunia. Saya menggunakan ssh-keygen -Hf /etc/ssh/ssh_known_hostsuntuk mengulangi milik saya setelah menambahkan entri secara manual, dan tampaknya hanya diatur untuk pemilik saja.
kael
1

Karena root sangat kuat, saya akan menggunakan pekerjaan root cron untuk menyalin file dari pengguna lain. Host yang dikenal dan kunci yang diotorisasi dapat dengan mudah ditambahkan. Jika semuanya ada di satu partisi ada opsi hardlink. Tidak yakin apakah symlink akan berfungsi untuk file, tetapi Anda bisa mencobanya juga, Anda hanya perlu meletakkannya di tempat yang dibagikan, namun aman.

xenoterracide
sumber
2
Ini akan mencegah pengguna menambahkan host mereka sendiri yang efek IMHO tidak diinginkan.
Maciej Piechotka
Saya lupa jika file hardlink harus memiliki perms yang sama tetapi saya curiga tidak. Namun Anda dapat menyalin file dengan cron dan kemudian memastikan perms sudah benar.
xenoterracide