Saya sedang menulis skrip yang akan masuk ke sekelompok mesin remote dan menjalankan perintah pada mereka. Saya telah menyiapkan kunci agar pengguna yang menjalankan skrip tidak harus mengetikkan kata sandi setiap mesin, tetapi hanya mengetikkan frasa sandi di awal skrip.
Masalahnya adalah bahwa perintah pada mesin jarak jauh perlu sudo
dijalankan. Dan pada saat yang sama seluruh inti dari skrip adalah untuk menghilangkan pengguna karena harus mengetikkan kata sandi beberapa kali. Adakah cara untuk menghindari mengetik kata sandi sudo
? Mengubah izin perintah pada mesin jarak jauh bukanlah suatu opsi.
/etc/sudoers
dan itu juga dapat diedit dengan menjalankansudo /usr/sbin/visudo
%wesho ALL=NOPASSWD: /sbin/service httpd
@Wo,
Anda dapat melakukan apa yang dikatakan DaDaDom (ini akan berhasil dan sederhana) atau Anda mungkin ingin meningkatkan pengaturan Anda dengan menggunakan modul PAM yang disebut pam-ssh-agent-auth .
Proses untuk sistem Debian / Ubuntu cukup sederhana:
Edit konfigurasi sudo:
Tambahkan yang berikut ini:
Lanjutkan dengan mengubah pengaturan PAM sudo:
Tambahkan baris auth tepat di atas 2 baris yang disertakan @ sertakan :
Voa!
sudo tanpa auth tetapi mengandalkan SSH Agent untuk melakukan otentikasi yang kuat, bukan hanya menghapus kata sandi dari konfigurasi sudo.
sumber
authorized_keys
HARUS dikunci sehingga hanya root yang bisa mengubahnya - jika tidak, Anda mungkin menonaktifkan kata sandi.Jawaban Andre de Miranda memberikan solusi yang bagus menggunakan pam_ssh_agent_auth , tetapi bagian-bagiannya sudah ketinggalan zaman. Terutama
/etc/pam.d/sudo
instruksi ketika menggunakan banyak versi Linux saat ini.Jika Anda menjalankan Ubuntu 12.04 dengan tepat, saya sebenarnya telah menyederhanakan prosesnya dengan memberikan pam_ssh_agent_auth yang dibuat dari ppa: ppa: cpick / pam-ssh-agent-auth .
Anda dapat menginstal paket dengan menjalankan:
Setelah instalasi, jika Anda ingin menggunakan modul PAM ini dengan sudo Anda harus mengkonfigurasi pengaturan sudo dan konfigurasi PAM, di Ubuntu 12,04 tepatnya Anda dapat melakukannya dengan membuat dua file berikut:
/etc/sudoers.d/pam-ssh-agent-auth:
/etc/pam.d/sudo:
Jika Anda menggunakan chef, proses di atas dapat diotomatiskan dengan buku masak saya, ditemukan di salah satu dari dua lokasi berikut:
https://github.com/cpick/pam-ssh-agent-auth
http: //community.opscode .com / buku masak / pam-ssh-agent-auth .
Direktori buku masak
files
berisi/etc/pam.d/sudo
dan/etc/sudoers.d/pam-ssh-agent-auth
file - file yang dijelaskan di atas yang bekerja dengan Ubuntu 12.04 tepat dan harus menjadi titik awal yang bermanfaat ketika menggunakan versi / distro lain.sumber