1. ホーム
  2. linux

[解決済み] リモートマシンに ssh してコマンドを実行するためのシェルスクリプトを書く

2022-08-12 04:10:19

質問

2つ質問があります。

  1. 複数のリモート Linux マシンがあり、私は各マシンで同じコマンドのセットを実行するシェルスクリプトを書く必要があります。(いくつかの sudo 操作を含む). これは、シェルスクリプトを使用してどのように行うことができますか?
  2. リモート マシンに ssh'ing するとき、RSA 指紋認証を求めるプロンプトをどのように処理するか。

リモートマシンは実行時に作成される VM で、私はその IP を知っているだけです。そのため、これらのマシンにあらかじめスクリプト ファイルを配置し、自分のマシンから実行することはできません。

どのように解決するのですか?

<ブロッククオート

複数のリモートLinuxマシンがあり、私は各マシンで同じコマンドのセットを実行するシェルスクリプトを書く必要があります。(いくつかの sudo 操作を含む)。シェル スクリプトを使用して、どのようにこれを行うことができますか。

例えばsshでできます。

#!/bin/bash
USERNAME=someUser
HOSTS="host1 host2 host3"
SCRIPT="pwd; ls"
for HOSTNAME in ${HOSTS} ; do
    ssh -l ${USERNAME} ${HOSTNAME} "${SCRIPT}"
done

リモートマシンに ssh する際、RSA 指紋認証のプロンプトが表示された場合の処理方法。

を追加することができます。 StrictHostKeyChecking=no オプションを ssh に追加します。

ssh -o StrictHostKeyChecking=no -l username hostname "pwd; ls"

これは ホスト鍵のチェックを無効にします。 となり、自動的にそのホストの鍵を既知のホストのリストに追加します。もし、ホストを既知のホストファイルに追加させたくない場合は、 オプションとして -o UserKnownHostsFile=/dev/null .

なお、この は特定のセキュリティチェックを無効にします。 例えば、中間者攻撃からの保護などです。そのため、セキュリティに敏感な環境では適用しないでください。