ssh
私はそれを再起動するために別のサーバーに移動するスクリプトを実行していますdhcpd
。
スクリプトでは、コマンドは文字通り次のことを意味します。
sudo ssh -n $SERVER /sbin/service dhcpd restart
スクリプトを呼び出すと正常に動作しますが、コマンドラインから直接コマンドを手動で実行しようとすると、rootパスワードを入力するように求められます。
コマンドがスクリプトから呼び出されるため、rootパスワードの入力を求められないのはなぜですか?
また、同じユーザーで両方を実行していることを確認しました。私はスクリプトを作成していないので、スクリプトが呼び出されたときにこの種のことが起こるようにする魔法があるかどうかはわかりません。
答え1
状況に合わせてSSHを設定する必要があります。呼び出し場所に関係なく、SSHツール自体は単に構成とキーを読み取り、リモートサーバーがキー専用認証を受け入れると、パスワードプロンプトは表示されません。コマンドを実行したいユーザーの下にあるリモートホストにキーを生成し、ローカルホストでキーベースの認証を有効にしてから、この文字列を呼び出すユーザーに対して "su"を生成します(使用する方法は何でも:cron)。 、シェルなど) - リモートキーをそのホストのキーとしてローカルに挿入します。それだけです!