SSHおよびsudoエラーでリモートでサービスを再起動する

SSHおよびsudoエラーでリモートでサービスを再起動する

次のコマンドを使用してサービスを再起動します。

ssh username@server "systemctl restart storeapp.service"

ただし、次のエラーメッセージが表示されます。

Failed to stop storeapp.service: Interactive authentication required.

それから試しました。

ssh -t username@server "systemctl restart storeapp.service"

正しいユーザー名で認証せずにusername@server他のユーザーをスキップするため、失敗します。 Authenticating as : otheruser。 SSHキーを設定しました。どうすればこの問題を克服できますか?それともシステム管理者権限の問題ですか?

実行すると、ssh username@server "systemctl status storeapp.service"サービスの状態を確認できます。

ベストアンサー1

まあ、最も単純なこの問題に対する解決策は、以下を追加することです。

<username> ALL = NOPASSWD: /bin/systemctl restart storeapp.service

のファイルの場合は、/etc/sudoers.d次のようになります。/etc/sudoers.d/storeappターゲットサーバーにあります。

sudo systemctl restart storeapp.serviceこれにより、パスワードを入力しなくてもコマンドを実行できます。


実際の例の使い方ufw
ターゲットホスト(Ubuntu 18.04):

sudo cat /etc/sudoers.d/ufw 
maulinglawns ALL = NOPASSWD: /bin/systemctl restart ufw

サーバーから:

ssh -t maulinglawns@<remote> 'sudo /bin/systemctl restart ufw'
maulinglawns@<remote>'s password: 
Connection to <remote> closed.
echo $?
0

上記のようにメッセージが表示されます。一度(キーを使用しないため)コマンドでは機能しませんsudo。終了ステータスは、ufwパスワードなしで正常に再起動したことを示します。を確認して確認することもできます/var/log/syslog


明らかに、これは次の場合にのみ機能します。ㅏ) rootターゲットサーバーにアクセスします。そうでなければ雨)これが可能か許容可能かについては、システム管理者に連絡してください。もし氏)visudosudoerファイルを編集/作成するときは常に使用してください。

実行すると、ssh username@server "systemctl status storeapp.service"サービスの状態を確認できます。

はい、status必ずしも高い電力を必要とするわけではありません。

おすすめ記事