私は初めてbashスクリプトに触れました。私のスクリプトからリモートコンピュータ(私のLAN上)にsshする関数を呼び出し、コマンドを実行したいと思います。
これまで私は以下を持っています:
function run_ssh_command {
target_ip=$1
username=$2
password=$3
cmd=$4
ssh -l ${username} ${target_ip} ${password}
}
端末で次のように関数を呼び出します。
(ノート:マイコンピュータで関数を実行すると、script_name、ユーザー名、およびパスワードに「実際の」値を指定します。 「ifconfig」は、リモートシステムで実行したいコマンドです。 )
source script_name.sh; run_ssh_command 192.168.X.Y username password ifconfig
結果:上記のコマンドを実行すると、ログインプロセスのパスワードプロンプト部分に移動します(例:sshと同じ)。[Eメール保護])
質問:パスワード入力を自動的に処理するスクリプトを使用したいです。一般に、この問題を解決する「最も良い」方法は何ですか?
答え1
答え2
スクリプトで ssh を実行するには、次を使用します。
ssh -i {privateKey} -o StrictHostKeyChecking=no {userName}@{serverIp} "{command}"
例:
ssh -i privateKey -o StrictHostKeyChecking=no [email protected] "mkdir testFolder"
このコマンドはスクリプトコードからテストフォルダを作成します。