Saya memiliki server A dan server B (keduanya Ubuntu 10,04 LTS) melakukan tugas yang berbeda. Server A perlu menyodok Server B, yang menghasilkan file dan scp kembali ke server A ketika selesai. Ini semua di rumah dan saya tidak terlalu khawatir tentang masalah keamanan. Pertukaran kunci SSH sudah dilakukan antara server A dan B dan berfungsi dengan baik.
Di server B, skripnya generateOfflineSig
terlihat seperti
#!/bin/bash
echo "in script"
sudo apt-offline set offline_package.sig --install-packages "$0"
echo "after sudo"
scp offline_package.sig jeff@servera:/tmp
Juga di server B, visudo memiliki entri ini:
jeff ALL=NOPASSWD: ALL
Yang berfungsi jika saya jalankan sudo ls
di Server B ... tidak ada kata sandi yang diminta.
Sayangnya SSH selalu meminta kata sandi di Server A:
jeff@servera:~$ ssh -t jeff@serverb /home/jeff/generateOfflineSig "incron"
in script
[sudo] password for jeff:
Ada ide? Proses ini tidak dapat diganggu oleh input kata sandi.
/etc/sudoers
sintaks, tetapi file saya memiliki garis# %wheel ALL=(ALL) NOPASSWD: ALL
. Mungkin kalimat Anda seharusnyajeff ALL=(ALL) NOPASSWD: ALL
?Jawaban:
Sepertinya saya punya "kesalahan ketik" di
/etc/sudoers
file ...jeff ALL=NOPASSWD: ALL
harus di bagian paling akhir file. Bantuan Ubuntu hanya mengatakan Tambahkan (...) ke AKHIR file (jika tidak pada akhirnya itu dapat dibatalkan oleh entri kemudian)
Setelah itu, kata sandi tidak pernah diminta untuk "perintah sudo jeff, baik secara lokal maupun melalui SSH.
sumber