パスワードを何度も尋ねずに複数のrsyncコマンド

パスワードを何度も尋ねずに複数のrsyncコマンド

rsyncリモートホスト上のパーソナルコンピュータの複数のファイルでbashスクリプトを作成しています。

これまでに作成した内容は、rsyncコマンドの後にコマンドを実行して動作します(合計3つ)。各実行後にSSHパスワードを入力する必要があります。rsync

#!/bin/bash
# create the command line argument, that will be PASSED when calling the script
while getopts r: option
do
case "${option}"
in
r) RUNNAME=${OPTARG};;
esac
done

# create the directory on the Toshiba hard Drive
mkdir -p /media/user/TOSHIBA\ EXT/novaseq/$RUNNAME/InterOp

mkdir -p /media/user/TOSHIBA\ EXT/novaseq/$RUNNAME/Unaligned/Stats

# rsync the files into the "base directory"
# the files that have to be rsynced have the extension .csv, .txt and .xml
rsync -avzh user@remote-host:/nexusb/Novaseq/$RUNNAME/*.* /media/user/TOSHIBA\ EXT/novaseq/$RUNNAME/ && rsync -avzh user@remote-host:/nexusb/Novaseq/$RUNNAME/InterOp/*.bin /media/user/TOSHIBA\ EXT/novaseq/$RUNNAME/InterOp && rsync -avzh user@remote-host:/nexusb/Novaseq/$RUNNAME/Unaligned/Stats/*.* /media/user/TOSHIBA\ EXT/novaseq/$RUNNAME/Unaligned/Stats

rsyncSSHパスワードのみを入力してこれら3つのコマンドを呼び出す方法はありますか?一度代わりに3回?

答え1

@Kusalanandaが提案したようにSSHプロキシを使用してください。すでにssh経由でログインしているので、ssh-agentをインスタンス化してスクリプトを実行すると正常に動作します。

eval $(ssh-agent)
ssh-add 

同じssh-agentに複数のSSHキーを追加できます。ssh-addデフォルトの場所に追加してください。公開鍵と秘密鍵のペアがデフォルトの場所にない場合は、ssh-addコマンドに追加します。

このスクリプトの外でssh-agentを使用している場合は、ログイン時に起動することもできます。

編集:リモートサーバーのスクリプトが終了した後にssh-agentを終了するのが良い考えです。他のユーザーがrootアクセス権を持っている場合は、あなたのパスワードを読むことができます。完全なセキュリティソリューションが必要な場合は、次の点を確認してください。この記事

関連情報