ローカルファイルとリモートファイル間で複数のdiffを実行する

ローカルファイルとリモートファイル間で複数のdiffを実行する

複数のローカルファイルをリモートホスト上の対応するファイルと比較したいので、次のスクリプトを作成したいと思います。

ssh user@remote_host "cat remote_file1.txt" | diff - local_file1.txt
ssh user@remote_host "cat remote_file2.txt" | diff - local_file2.txt
...
ssh user@remote_host "cat remote_fileN.txt" | diff - local_fileN.txt

このタイプのスクリプトの問題は、各ファイルのパスワードを要求することです。パスワードを一度だけ尋ねるようにするにはどうすればよいですか?

ベストアンサー1

1 つの方法は、パスワードのないアクセス (公開鍵認証) を設定すること、もう 1 つは接続を再利用することです。~/.ssh/config次の内容で構成ファイルを作成します。

Host remote_host
  User user
  ControlPath ~/.ssh/controlmasters/%r@%h:%p
  ControlMaster auto
  ControlPersist 5m

ディレクトリを作成します~/.ssh/controlmasters/

mkdir -m 700 ~/.ssh/controlmasters/

その後、スクリプトを実行するときにパスワードを一度だけ要求する必要があり、他のすべてのコマンドはすでに認証されているのと同じ接続で実行されます。

おすすめ記事