bashスクリプト機能を使用してリモートホストにSSHで接続する方法は? [コピー]

bashスクリプト機能を使用してリモートホストにSSHで接続する方法は? [コピー]

私は初めて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

あなたはそれを使用することができますSSHパス。ただし、これを行うにはパスワードをハードコードする必要があります。これは一般的に安全ではないため、推奨されていないがRSAフィンガープリントにアクセスできない場合に必要になる場合があります。

使用法:

sshpass -p somepassword ssh user@host

リモートコンピュータへのルートアクセス権がある場合は、RSAキーの設定を検討する必要があります。これどのように設定されるかを説明します。

答え2

スクリプトで ssh を実行するには、次を使用します。

ssh -i {privateKey} -o StrictHostKeyChecking=no {userName}@{serverIp} "{command}"

例:

ssh -i privateKey -o StrictHostKeyChecking=no [email protected] "mkdir testFolder"

このコマンドはスクリプトコードからテストフォルダを作成します。

関連情報