我有服务器A和服务器B(都是Ubuntu 10.04 LTS)执行不同的任务。服务器A需要戳服务器B,服务器B将生成一个文件,并在完成后通过scp将其返回服务器A。这些都在公司内部,我不太担心安全问题。SSH密钥交换已在服务器A和B之间执行,并且工作正常。
在服务器B上,脚本generateOfflineSig
看起来像
#!/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
同样在服务器B上,visudo具有以下条目:
jeff ALL=NOPASSWD: ALL
如果我sudo ls
在服务器B上执行,那可以用...不要求密码。
不幸的是,SSH总是要求在服务器A上输入密码:
jeff@servera:~$ ssh -t jeff@serverb /home/jeff/generateOfflineSig "incron"
in script
[sudo] password for jeff:
有任何想法吗?密码输入不能中断此过程。
整个远程命令不是必须用引号引起来吗?您可能正在服务器A
—
TheLQ
其实...我认为Snapshoe正在解决问题。我待会再回答我自己的问题……
—
杰夫(Jeff)
/etc/sudoers
语法,但是我的文件中有line# %wheel ALL=(ALL) NOPASSWD: ALL
。也许您的电话应该是jeff ALL=(ALL) NOPASSWD: ALL
?