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 비밀번호만 입력하여 이 세 가지 명령을 호출할 수 있는 방법이 있나요 ?한 번대신 세 번?
답변1
@Kusalananda가 제안한 대로 SSH 프록시를 사용하세요. 이미 ssh를 통해 로그인되어 있으므로 ssh-agent를 인스턴스화하여 스크립트를 실행하면 정상적으로 작동합니다.
eval $(ssh-agent)
ssh-add
동일한 ssh-agent에 여러 SSH 키를 추가할 수 있습니다. ssh-add
기본 위치에 추가하세요. 공개/개인 키 쌍이 기본 위치에 없으면 ssh-add 명령에 추가하십시오.
이 스크립트 외부에서 ssh-agent를 사용하는 경우 로그인 시 시작할 수도 있습니다.
편집: 원격 서버의 스크립트가 종료된 후 ssh-agent를 종료하는 것이 좋은 생각인 것 같습니다. 다른 사람이 루트 액세스 권한을 갖고 있으면 귀하의 비밀번호를 읽을 수 있습니다. 완벽한 보안 솔루션을 원한다면 다음을 확인하세요.이 기사.