web-dev-qa-db-ja.com

パスワードを要求せずにSSH経由でSudoコマンドを有効にする方法は?

サーバー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:

何か案は?このプロセスは、パスワード入力によって中断することはできません。

13
Jeff

/etc/sudoersファイルに「タイプミス」があったようです...

jeff ALL=NOPASSWD: ALL

ファイルの最後にある必要があります。 buntuヘルプ のみファイルの終わりに追加(...)(最後にない場合は、後のエントリで無効にできる)

その後、ローカルでもSSHでも、「jeffのSudoコマンドをパスワードで要求されることはありません。

16
Jeff