考虑到我想保持密码身份验证(因此我不想使用NOPASSWD
或输入密钥),这对我有用:在Ubuntu 14.04上:
sudo
通过禁用其中的tty_tickets
一个临时文件/etc/sudoers.d/
(在Debian中应该受到支持,请参见/etc/sudoers.d/README
)来“ 在远程计算机上打开” ,以及“更新用户的缓存凭据”,这“将sudo超时再延长15分钟”。
- 如其他答案所示运行
rsync
withsudo
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/
,以便接受其中的更改。