Apa cara termudah untuk membuat skrip sistem (berjalan sebagai root) menjalankan perintah jarak jauh melalui ssh?
Saya telah menulis beberapa skrip yang menjalankan perintah dari jarak jauh melalui ssh, dan mereka bekerja dengan baik ketika saya menjalankannya seperti saya sendiri, karena saya telah mengatur ssh-agent dan kunci untuk login tanpa kata sandi. Saya ingin menyebutnya ketika laptop saya masuk dan keluar. Saya telah berhasil menjalankan skrip sewenang-wenang ketika melakukan docking / undocking, tetapi karena skrip ACPI berjalan sebagai root, mencoba menjalankan skrip ssh saya gagal selama otentikasi.
Saya mencoba menggunakan sudo dengan flag -u dan -i untuk mensimulasikan menjalankan skrip sebagai pengguna saya, misalnya:
sudo -u redmoskito -i /home/redmoskito/bin/remote_command
yang berhasil menemukan kunci pribadi saya dan mencoba menggunakannya, tetapi kredensial ssh-agent masih hilang, sehingga masih perlu frasa sandi saya.
Jawaban:
Tidak ada yang salah dengan bagian sudo. Untuk mengambil agen ssh yang ada, lihat jawaban ini: Membagikan `ssh-agent` yang sama di antara beberapa sesi login
sumber
Apakah Anda mencoba menggunakan su alih-alih sudo?
su - redmoskito -c "/ home / redmoskito / bin / remote_command"
ATAU
sunting skrip Anda untuk menggunakan: ssh-l redmoskito (host) (perintah) (dengan anggapan bahwa redmoskito adalah nama pengguna yang sama pada mesin jarak jauh) Kemudian pada direktori home mesin redmoskito mesin jarak jauh $ HOME / .ssh / berwenang_keys, masukkan konten lokal root mesin $ HOME.ssh / id_rsa.pub setelah membuat kata sandi kosong sebagai root pada mesin lokal dengan ssh-keygen -t rsa Pastikan $ HOME atau $ HOME / .ssh atau file apa pun di $ HOME / .ssh tidak grup atau yang dapat ditulisi lainnya jika file sshd_config Anda memiliki StrictModes = ya
Jika tidak ada yang berhasil, beri tahu saya. Saya akan menduplikasi masalah pada mesin saya.
sumber