サーバーAとサーバーB(両方ともUbuntu 10.04 LTS)が異なるタスクを実行しています。サーバーAはサーバーBをポークする必要があります。サーバーBはファイルを生成し、完了したらそれをサーバーAにscpします。これはすべて社内で行われており、セキュリティの問題についてはあまり心配していません。 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:
何か案は?このプロセスは、パスワード入力によって中断することはできません。
/etc/sudoers
ファイルに「タイプミス」があったようです...
jeff ALL=NOPASSWD: ALL
ファイルの最後にある必要があります。 buntuヘルプ のみファイルの終わりに追加(...)(最後にない場合は、後のエントリで無効にできる)
その後、ローカルでもSSHでも、「jeffのSudoコマンドをパスワードで要求されることはありません。