Inilah yang berfungsi untuk saya, mengingat saya ingin tetap menggunakan otentikasi kata sandi (jadi saya tidak ingin menggunakan NOPASSWD
atau kunci) - di Ubuntu 14.04:
- "Buka"
sudo
pada mesin jarak jauh dengan menonaktifkan tty_tickets
melalui file sementara di /etc/sudoers.d/
(yang harus didukung di Debian, lihat /etc/sudoers.d/README
), dan "Perbarui kredensial cache pengguna", yang "memperpanjang batas waktu sudo selama 15 menit"
- Jalankan
rsync
dengan sudo
seperti yang ditunjukkan pada jawaban lain
- "Tutup"
sudo
pada mesin jarak jauh dengan menghapus file sementara /etc/sudoers.d/
, yang mengaktifkan kembalitty_tickets
... atau, dengan baris perintah:
ssh -t $REMOTEPC 'echo "Defaults !tty_tickets" | sudo tee /etc/sudoers.d/temp; sudo -v'
rsync -aP -e 'ssh' '--rsync-path=sudo rsync' /etc/pulse/client.conf $REMOTEPC:/etc/pulse/client-copy.conf
ssh -t $REMOTEPC 'sudo rm -v /etc/sudoers.d/temp; sudo -v'
Ini adalah respons yang saya dapatkan ketika menjalankan perintah ini di komputer lokal:
$ ssh -t $REMOTEPC 'echo "Defaults !tty_tickets" | sudo tee /etc/sudoers.d/temp; sudo -v'
remoteuser@$REMOTEPC's password:
[sudo] password for remoteuser:
Defaults !tty_tickets
Connection to $REMOTEPC closed.
$ rsync -aP -e 'ssh' '--rsync-path=sudo rsync' /etc/pulse/client.conf $REMOTEPC:/etc/pulse/client-copy.conf
remoteuser@$REMOTEPC's password:
sending incremental file list
client.conf
1269 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/1)
$ ssh -t $REMOTEPC 'sudo rm -v /etc/sudoers.d/temp; sudo -v'
remoteuser@$REMOTEPC's password:
removed ‘/etc/sudoers.d/temp’
[sudo] password for remoteuser:
Connection to $REMOTEPC closed.
Catatan yang sudo -v
harus dijalankan setelah setiap kali file masuk /etc/sudoers.d/
, sehingga perubahan di dalamnya diterima.