複数のローカルファイルをリモートホスト上の対応するファイルと比較したいので、次のスクリプトを作成したいと思います。
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/
その後、スクリプトを実行するときにパスワードを一度だけ要求する必要があり、他のすべてのコマンドはすでに認証されているのと同じ接続で実行されます。