サーバー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:
何か案は?このプロセスは、パスワード入力によって中断することはできません。
リモートコマンド全体を引用符で囲む必要はありませんか?
—
サーバー
実際に...私はスナップシューが何かをしていると思います。少し後で自分の質問に答えます...
—
ジェフ
/etc/sudoers
構文は100%確かではありませんが、私のファイルには行があり# %wheel ALL=(ALL) NOPASSWD: ALL
ます。たぶんあなたのラインはどうあるべきjeff ALL=(ALL) NOPASSWD: ALL
か?