Saya sedang mencari metode untuk membatasi akses ke repositori Debian pribadi dan dapat mengautentikasi non-interaktif (yaitu menggunakan skrip)
Artikel paling berguna yang saya temukan sebenarnya dari situs administrasi Debian tetapi metode aman menggunakan ssh dan kunci publik / pribadi. Ini berfungsi dengan baik tetapi kunci publik setiap host harus berada di dalam file otor_keys jarak jauh untuk berhasil mengotentikasi. Itu tidak mengatakan apa-apa tentang memberikan kata sandi ke ssh: // tapi saya kira itu harus dimungkinkan.
Sudahkah Anda mencoba alternatif lain (misalnya ftps)?
Terima kasih sebelumnya
Jawaban:
Jika Anda selalu berjalan
apt-get
di server Anda dengan tangan (tidak adaapt-get
perintah otomatis yang diluncurkan oleh crons), maka Anda dapat mempertimbangkan untuk menggunakan penerusan ssh agent . Ini menghindari keharusan mengelola satu kunci publik / privat per server yang Anda kelola, dan mungkin lebih aman daripada meninggalkan kunci pribadi di setiap server.Konfigurasi awal - sambungkan ke server yang ingin Anda kelola, dan tambahkan sesuatu seperti ini
/etc/apt/sources.list
(contoh ini mengasumsikan Anda ingin server Anda terhubung kemanager
akun):buat sepasang kunci privat / publik di komputer Anda sendiri, dengan login Anda
johndoe
misalnya (asalkan komputer Anda berjalan di debian: jika tidak, Anda dapat melakukan ini dari server debian yang didedikasikan untuk manajemen):salin kunci publik Anda ke server repositori di
/home/manager/.ssh/authorized_keys
:Sekali per sesi manajemen
mulai agen ssh di mesin Anda dengan mengetik:
tambahkan kunci Anda ke agen (ini akan memerlukan kata sandi Anda):
Mengelola server
terhubung ke server yang ingin Anda kelola menggunakan
ssh -A
(-A
mengaktifkan penerusan agen):beralih ke root (jika Anda ingin menggunakan,
sudo
Anda perlu mengonfigurasi/etc/sudoers
atau jika tidaksudo
akan merusak penerusan agen, baca ini ):Anda sekarang harus dapat terhubung ke akun manajer repositori menggunakan ssh tanpa mengetikkan kata sandi Anda lagi, berkat penerusan agen. Karena itu,
apt-get
harus berfungsi dengan baik:Mengakhiri sesi manajemen Anda
Setelah Anda selesai mengelola server Anda, hapus kunci Anda dari agen:
Keuntungan
ssh-ask
untuk menerima / menolak setiap upaya untuk menggunakan kunci Anda.sumber
Salah satu cara untuk melakukan ini adalah dengan hanya membiarkan satu set IP tertentu untuk mengakses repositori. Ini bekerja sangat baik untuk LAN dan VPN.
Sederhana dan efisien.
sumber
Solusi ssh + kunci publik / pribadi tidak terlalu buruk:
ssh-keygen
, lalussh-copy-id [email protected]
edit
/etc/apt/sources.list
dan tambahkan sesuatu seperti:Memang, ini mengharuskan Anda untuk meletakkan kunci publik setiap server dalam
~/.ssh/authorized_keys
file di server, tetapi itu tidak rumit (lihat di atas) dan itu memberi Anda kontrol atas server yang Anda izinkan atau tidak pada waktu tertentu (Anda dapat menghapus kunci di kapan saja masukauthorized_keys
).sumber
Anda dapat mengatur akses https ke repositori Anda, dijamin dengan login / kata sandi (otentikasi dasar). Masalahnya adalah Anda harus memasukkan login / kata sandi cleartext
/etc/apt/sources.list
(catatan: ada tambalan untuk mengizinkan login / kata sandi dimasukkan/root/.netrc
sebagai gantinya).sumber
Tautan dalam pertanyaan Anda menunjukkan beberapa metode. Anda ingin nomor 2, https + otentikasi dasar.
sumber