ssh -t
経由でリモートホストにログインするスクリプトがありますsudo service foo restart
。
要件は、リモートホストにパスワードの入力を求められないようにすることです。リモートホストはSSH証明書を介して認証されます。このユーザーにはリモートホスト上のファイルがsudoers
許可されますNOPASSWD
。
ただし、テスト中にパスワードを入力するように求められましたが、これは許可されていません。-t
フラグなしで手動で実行すると機能します。しかし、-t
フラグはすべてをあまり重要にしません。
解決策はありますか?
ベストアンサー1
requiretty
オプションを無効にして実行することもできます。sudoers
ssh
いいえフラグ-t
(またはおよび-T
)が有効です。
次のものを追加しますsudoers
(テストされていません)。
Defaults:{your ssh user} !requiretty
これをNOPASSWD
すでに使用しているコマンドと組み合わせると、pseudo-ttyを割り当てなくてもsudoコマンドを実行できます。
requiretty
ユーザーの代わりにコマンドを変更することもできます。