Saya sedang dalam proses mengkonfigurasi server cloud untuk menjalankan tumpukan berikut: Ruby, Penumpang, Apache; di bawah Ubuntu 10,04 (Lucid Lynx).
Dalam proses ingin membuat server lebih mudah untuk mengelola saya mengatur kunci RSA aktif root
, dan www-data
sehingga saya bisa ssh
masuk ke server. Hal yang saya tidak suka adalah bahwa www-data
's .ssh
direktori duduk di /var/www
yang merupakan setup direktori default untuk apache. Kekhawatiran saya adalah jika apache tidak dikonfigurasi dengan benar maka .ssh
direktori dapat diekspos.
Saya datang di solusi untuk memindahkan ~/.ssh/authorized_keys
file ke lokasi pusat dengan mengubah AuthorizedKeysFile
di /etc/ssh/sshd_config
. Ini dilengkapi dengan 2 pro: Satu lokasi untuk kunci, dan tidak perlu khawatir tentang konfigurasi apache yang buruk. Satu-satunya con yang dapat saya pikirkan adalah bahwa sekarang setiap pengguna tersedia untuk login di server (jelas pedang bermata dua dari file kunci pusat.)
Apakah ada yang saya lewatkan dalam konfigurasi ini? Apakah saya sudah terlalu sering mengekspos diri saya, atau apakah ini solusi yang lebih baik daripada authorized_keys
file individual ?
Saya hijau ketika datang ke manajemen server, tetapi saya benar-benar siap disebut nama buruk untuk melakukan hal-hal buruk. : D
sumber
id_rsa
file di dalamnya~/.ssh
dan mereka berhasil membacanya)Jawaban:
Semua file kunci dapat dipusatkan di direktori yang sama dan tidak dicampur dalam file yang sama.
Cukup atur
sshd_config
file seperti ini:Di server Anda:
/etc/ssh/authorized_keys/www-data
/etc/ssh/authorized_keys/root
Mengenai hak akses, pengaturan ini diterima oleh sshd:
/etc/ssh/authorized_keys
dimiliki olehroot:root
dan memiliki mode 755. File-file utama dimiliki olehroot:root
dan memiliki mode 644.Mode lain mungkin berfungsi tetapi saya belum mengujinya.
sumber
Secara umum saya tidak akan melakukan apa yang Anda sarankan. Itu melanggar asumsi umum (seperti
~/.ssh/authorized_keys
bekerja untuk pengguna Anda, dan memperkenalkan masalah yang sudah Anda sebutkan dalam pertanyaan Anda. Jika Anda melihat masalah mencolok sebelum implementasi itu berarti solusi Anda tidak ideal.Dari segi keamanan, saya juga berpikir itu adalah ide yang MENGERIKAN untuk membuat semua orang berbagi akun layanan: Saat ini hanya Anda, dan Anda tahu Anda yang membuat perubahan. Dalam 5 tahun ketika Anda memiliki 5 admin Anda akan ingin tahu siapa yang mengubah apa, dan menggali melalui log audit untuk melihat siapa yang menggunakan kunci apa saat sakit kerajaan.
Anda lebih baik meminta orang masuk sebagai diri mereka sendiri dan menggunakan
sudo
atau sesuatu yang serupa untuk meningkatkan hak istimewa mereka dan melakukan apa pun yang perlu mereka lakukan.Jika Anda masih ingin memusatkan kunci SSH saya sarankan melihat ke dalam sistem penyebaran seperti Wayang atau Radmind untuk mengelola / mendistribusikan
authorized_keys
file ke~user/.ssh/
direktori yang sesuai (atau meretas solusi buatan rumah yang SCPs mereka menempatkannya).Saat Anda memperluas ke beberapa server, Anda mungkin ingin melihat ke dalam patch Kunci Publik LDAP untuk versi OpenSSH yang lebih lama (atau
AuthorizedKeysCommand
arahan dan skrip yang sesuai dalam versi OpenSSH yang lebih baru) juga sehingga Anda dapat memusatkan pengguna Anda dan tidak perlu mendistribusikan kunci mereka di seluruh jaringan Anda, tetapi itu mungkin cukup jauh untuk Anda.sumber
root
atauwww-data
diakses melalui kunci ssh apakah itu benar?~www-data/.ssh
direktori bukanlah hal yang mengerikan (dengan izin yang sesuai itu bukan risiko yang besar), tetapi jika Anda akan menggunakannya~www-data/.ssh
mungkin lebih baik tidak membuat webroot Anda~www-data
(baik memindahkan webroot atau memindahkanwww-data
direktori home). Diferensiasi pengguna adalah argumen yang lebih besar IMHO - Saya tahu jika saya melihatjsmith
login saya tahu itu adalah John Smith. Jika saya melihatwww-data
login saya perlu menggali lebih banyak untuk mengetahui siapa itu.AuthorizedKeysFile
di/etc/ssh/sshd_config
default%h/.ssh/authorized_keys
. Berikut%h
adalah pengganti untuk direktori home. Apa yang membuat Anda tidak menyetel ke/some/folder/ssh_keys_by_user/%h/
atau bahkan/root/ssh_keys/%u
. Anda bahkan dapat memberikan akses tulis kepada masing-masing pengguna ke file individualnya di sana (dan hanya file-nya) yang menautkan file ke lokasi standar (denganln -s /root/ssh_keys_by_user/username /home/username/.ssh/authorized_keys
) dan tidak mematahkan asumsi yang disebutkan.