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
rsync
SSHパスワードのみを入力してこれら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アクセス権を持っている場合は、あなたのパスワードを読むことができます。完全なセキュリティソリューションが必要な場合は、次の点を確認してください。この記事。