Kami memiliki banyak sistem berbeda yang dikelola oleh beberapa orang. Kami telah memilih untuk menggunakan otentikasi kunci publik SSH untuk mengakses sistem tersebut. Ini berfungsi dengan baik, karena tidak perlu mengelola atau berbagi kata sandi akun administratif, tidak perlu mengingat kata sandi ke berbagai sistem (hanya frase sandi untuk kunci pribadi Anda), tidak perlu berinteraksi (memasukkan kata sandi) dengan setiap perintah jarak jauh .
Masalahnya adalah, kunci publik yang diinstal pada sistem perlu dikelola entah bagaimana. Orang-orang datang dan pergi, kunci dapat dikompromikan, tanggung jawab berubah (seseorang yang berwenang untuk memasuki satu sistem hari ini mungkin diizinkan untuk mengakses yang berbeda besok). Saat ini kami mengelolanya dengan mengedit secara manual file ~ / .ssh / Authorized_key pada setiap akun yang membutuhkannya, tetapi itu banyak pekerjaan dan rawan kesalahan.
Apakah ada alat yang siap untuk mengelola kunci publik dalam skenario seperti itu? Apakah Anda punya solusi sendiri? Atau apakah seluruh gagasan mengelola sistem dengan cara ini cacat?
sumber
Jawaban:
Seperti yang telah disebutkan oleh pulegium, perangkat lunak manajemen konfigurasi generik seperti Puppet , Chef , Bcfg2 , atau cfengine dapat menyelesaikan tugas.
Karena file Authorized_key tidak terlalu rumit, Anda juga dapat menggunakan rsync atau (D) SCM seperti git atau hg untuk mengelola file ini. Anda memiliki file "master" di salah satu server Anda dan melayani melalui rsync / git / hg /…. Di setiap server lain Anda menjalankan tugas cron yang secara berkala mengambil salinan master (jika diubah) dan menyalinnya ke lokasi lokal yang benar. Heck, ini bahkan akan bekerja dengan HTTP atau FTP murni.
Intinya adalah: Memiliki satu salinan "master" dari file Authorized_key Anda dan memperbaruinya. Biarkan "klien" (komputer, yang seharusnya memiliki file otor_keys saat ini) mengambilnya dari server master Anda dan menyebarkannya secara lokal.
sumber
Ada tambalan yang tersedia untuk OpenSSH yang memungkinkannya untuk menggunakan kunci publik dari server LDAP, tetapi ini hanya masuk akal jika pemeriksaan auth / akun Anda juga dilakukan terhadap server LDAP tersebut (yang merupakan cara pengaturan lingkungan saya mengatur). Juga hanya seaman konfigurasi LDAP Anda (jadi Anda ingin menggunakan SSL & kunci verifikasi).
Lihat http://code.google.com/p/openssh-lpk/ untuk tambalan dan detail lebih lanjut. Saya tidak tahu OS apa pun yang dikirimkan dengan tambalan ini secara default, tetapi jika Anda menjalankan FreeBSD itu tambalan opsional jika Anda menggunakan OpenSSH dari port.
sumber
saya menjalankan solusi yang sangat mudah, yang melakukan hal yang sama dengan aturan firewall
contoh file hosts.conf:
mendistribusikan.sh:
itulah seluruh keajaiban :-)
sumber
Saat ini saya sedang memeriksa SSH KeyDB . Ini dimaksudkan untuk melakukan hal itu, mengatur peran, server dan pengguna, mendistribusikan kunci pengguna, mengumpulkan kunci host dll. Bahkan memiliki sesuatu yang disebut "lokasi".
Saya belum menyelesaikan semuanya dan saya tidak yakin apakah itu berfungsi sepenuhnya. Namun kode ini dalam python dan tampaknya cukup mudah dikelola, jadi seharusnya tidak terlalu sulit untuk membersihkannya dan membuatnya berfungsi.
sumber
Saya tidak yakin apa yang Anda maksudkan dengan banyak orang, saya juga tidak tahu apakah Anda mau berubah, tetapi Kerberos adalah droid yang Anda cari. Itu akan menyelesaikan masalah Anda dengan elegan, dan akan mengotentikasi orang dan mesin.
sumber
Anda memiliki dua (yang biasanya berubah menjadi 3) masalah berbeda yang Anda coba selesaikan:
Kunci publik kunci kadang-kadang merupakan cara yang baik untuk otentikasi, tetapi tidak membahas otorisasi sama sekali. Saya tidak suka autor kunci publik, karena sangat mudah untuk berkompromi (terutama secara internal) kecuali Anda memiliki kontrol yang baik.
Di situlah solusi seperti Kerberos ikut bermain. Di dunia Windows, Active Directory memecahkan masalah ini. Di dunia Unix, ada banyak pilihan, yang merupakan hal yang baik dan yang buruk.
Saya akan memeriksa proyek Red Hat FreeIPA , yang merupakan kumpulan perangkat lunak yang membuatnya mudah untuk menjalankan dan menjalankan sistem Kerberos / LDAP / DNS seperti-AD dan berjalan dengan cepat.
sumber
Anda dapat menggunakan Bcfg2 dengan akun bcfg2 untuk mendistribusikan
authorized_keys
. Sebagai bonus tambahan, Anda akan memiliki kemampuan untuk mengontrol pengguna dan grup.Bcfg2 memungkinkan pemeliharaan tanpa rasa sakit
/etc/ssh/ssh_known_hosts
dengan SSHbase juga.sumber
Ada juga SKM
sumber