ssh -tを介してリモートでsudoコマンドを実行するには?

ssh -tを介してリモートでsudoコマンドを実行するには?

ssh -t経由でリモートホストにログインするスクリプトがありますsudo service foo restart

要件は、リモートホストにパスワードの入力を求められないようにすることです。リモートホストはSSH証明書を介して認証されます。このユーザーにはリモートホスト上のファイルがsudoers許可されますNOPASSWD

ただし、テスト中にパスワードを入力するように求められましたが、これは許可されていません。-tフラグなしで手動で実行すると機能します。しかし、-tフラグはすべてをあまり重要にしません。

解決策はありますか?

ベストアンサー1

requirettyオプションを無効にして実行することもできます。sudoersssh いいえフラグ-t(またはおよび-T)が有効です。

次のものを追加しますsudoers(テストされていません)。

Defaults:{your ssh user} !requiretty

これをNOPASSWDすでに使用しているコマンドと組み合わせると、pseudo-ttyを割り当てなくてもsudoコマンドを実行できます。

requirettyユーザーの代わりにコマンドを変更することもできます。

おすすめ記事