Apakah mungkin membuat perintah sudo untuk mendukung kunci pribadi SSH, sehingga ketika pengguna login menggunakan kunci pribadi maka ia bisa sudo tanpa mengetikkan kata sandi.
Ini akan memungkinkan menyimpan kata sandi UNIX sysadmin di cold storage terenkripsi dan tidak perlu mengaksesnya, dengan asumsi pengguna menggunakan kunci SSH pribadi aman selalu untuk login di server.
sudo visudo
dan ubah kata sandi Anda untukNOPASSWD: ALL
melihat apakah itu berhasilJawaban:
Opsi untuk melakukannya telah ada sejak (setidaknya) April 2014 .
Anda perlu menginstal paket yang disebut
pam_ssh_agent_auth
(tersedia untuk Centos 7 di luar kotak, YMMV), lalu konfigurasikan/etc/pam.d/sudo
untuk menerimanya sebagai metode otorisasi. Terakhir, Anda mungkin perlu menambahkanSSH_AUTH_SOCK
ke daftar variabel lingkungan yang bertahan selamasudo
.Wiki Gentoo memiliki detail untuk langkah-langkah ini.
sumber
Ini tidak dimungkinkan tanpa beberapa perubahan kode serius ke sudo dan sshd. Sudo tidak tahu tentang metode login, dan ssh tidak mempublikasikan ke program lain apa pun yang akan menunjukkan apakah kunci publik, kata sandi, atau mekanisme lain digunakan untuk login.
Seperti kata orang lain, Anda dapat menggunakan opsi NOPASSWD di sudoers - ini akan berlaku untuk pengguna yang ditentukan selalu, meskipun, tidak hanya ketika mereka menggunakan ssh dengan kunci pribadi.
Jika Anda benar-benar ingin, mungkin ada trik yang dapat Anda lakukan dengan program suid yang memeriksa log sshd dan mengunci / mengedit file sudoers untuk membiarkan pengguna itu melakukan sudo tanpa kata sandi, dan tugas berkala untuk mencabut izin ini.
Semua yang dikatakan, saya pikir ini adalah ide yang buruk. Membutuhkan kata sandi untuk perintah istimewa memiliki beberapa manfaat bagus yang tidak dimiliki SSH kunci pribadi. Khususnya, ini memungkinkan Anda memiliki batas waktu untuk auth (kata sandi harus dimasukkan kembali, tidak berlaku untuk sesi ssh), memungkinkan Anda memiliki minimum dan rotasi kata sandi (tidak seperti kunci ssh, yang memiliki frasa sandi di luar kendali server).
sumber
Beberapa jawaban Arahkan ke sudo tanpa Kata Sandi pengguna yang terpisah. Anda harus menyadari bahwa ini akan mengurangi keamanan Anda.
Untuk pengguna yang sudah sangat terotentikasi dengan sertifikat, ini mungkin tidak menjadi masalah karena ia dalam posisi sertifikat yang secara teoritis bisa membuatnya root.
Namun, jika Anda berpikir tentang kerentanan yang akan memberikan penyerang dengan shell pengguna terbatas dan pengguna ini memiliki NOPASSWD yang diatur dalam file sudoers, penyerang adalah root tanpa memiliki kredensial ke Sistem sama sekali.
Jika sudo memerlukan kata sandi dari pengguna, penyerang perlu waktu dan keberuntungan untuk meningkatkan hak istimewanya untuk melakukan root.
sumber