นี่คือสิ่งที่ใช้งานได้สำหรับฉันโดยพิจารณาว่าฉันต้องการเก็บการรับรองความถูกต้องของรหัสผ่านไว้ (ดังนั้นฉันไม่ต้องการใช้NOPASSWD
หรือปุ่ม) - บน Ubuntu 14.04:
- "Open up"
sudo
บนเครื่องระยะไกลโดยการปิดการใช้งานtty_tickets
ผ่านไฟล์ชั่วคราวใน/etc/sudoers.d/
(ซึ่งควรได้รับการสนับสนุนใน Debian, ดู/etc/sudoers.d/README
) และ "อัปเดตข้อมูลประจำตัวที่แคชของผู้ใช้" ซึ่ง "ขยายเวลา sudo หมดเวลาอีก 15 นาที"
- เรียกใช้
rsync
ด้วยsudo
ตามที่แสดงในคำตอบอื่น ๆ
- "ปิด"
sudo
บนเครื่องระยะไกลโดยการลบไฟล์ชั่วคราว/etc/sudoers.d/
ซึ่งเปิดใช้งานอีกครั้งtty_tickets
... หรือด้วยบรรทัดคำสั่ง:
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'
เหล่านี้คือคำตอบที่ฉันได้รับเมื่อเรียกใช้คำสั่งเหล่านี้บนเครื่องโลคอล:
$ 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.
โปรดทราบว่าsudo -v
ควรรันหลังจากไฟล์แต่ละครั้ง/etc/sudoers.d/
ดังนั้นยอมรับการเปลี่ยนแปลงในนั้น