sudo には、標準入力からパスワードを受け入れるための -S オプションがあります。男性のエントリは次のとおりです:
-S The -S (stdin) option causes sudo to read the password from
the standard input instead of the terminal device.
これにより、次のようなコマンドを実行できます:
echo myPassword | sudo -S ls /tmp
sshに関しては、その使用法を自動化/スクリプト化しようと何度も試みましたが、成功しませんでした。プロンプトを表示せずにパスワードをコマンドに渡す組み込みの方法はないようです。他の人が言及したように、「expect」ユーティリティはこのジレンマに対処することを目的としているように見えますが、最終的には、これを自動化しようとするときに正しい秘密鍵認証を設定することが正しい方法です.
ダイアログ ボックスでパスワードの入力を求める Applescript を作成し、次のようにカスタム bash コマンドを作成しました。
echo <password> | sudo -S <command>
これが役立つかどうかはわかりません。
sudo が事前に暗号化されたパスワードを受け入れれば、スクリプト内でパスワードを暗号化でき、クリア テキストのパスワードが周囲にエコーされることを心配する必要がなくなります。ただし、これは私と私の状況では機能します。
sudo の場合、これも実行できます:
sudo -S <<< "password" command
ssh
の場合 sshpass
を使用できます :sshpass -p yourpassphrase ssh [email protected]
.
最初に sshpass をダウンロードするだけです :)
$ apt-get install sshpass
$ sshpass -p 'password' ssh [email protected]