[ssh] rsync SSH 명령에 대한 암호를 자동으로 전달하는 방법은 무엇입니까?

내가 할 필요 rsyncssh와의 암호를 통과 할 필요없이 자동으로 수행 할 ssh수동으로.



답변

스크립팅 된 ssh 로그인에는 암호없이 키 파일을 사용해야합니다. 이것은 분명히 보안 위험이므로 키 파일 자체가 적절하게 보호되도록주의하십시오.

암호없는 SSH 액세스 설정 지침


답변

“sshpass”비대화 형 ssh 암호 공급자 유틸리티 사용

Ubuntu에서

 sudo apt-get install sshpass

rsync 명령

 /usr/bin/rsync -ratlz --rsh="/usr/bin/sshpass -p password ssh -o StrictHostKeyChecking=no -l username" src_path  dest_path


답변

rsync환경 변수 RSYNC_PASSWORD를 사용하려는 암호 로 설정 하거나 --password-file옵션 을 사용하여 명령 에서 암호 프롬프트를 피할 수 있습니다 .


답변

공개 / 비공개 키를 사용할 수없는 경우 다음과 같이 사용할 수 있습니다.

#!/usr/bin/expect
spawn rsync SRC DEST
expect "password:"
send "PASS\n"
expect eof
if [catch wait] {
    puts "rsync failed"
    exit 1
}
exit 0

SRC 및 DEST를 일반 rsync 소스 및 대상 매개 변수로 바꾸고 PASS를 비밀번호로 바꿔야합니다. 이 파일이 안전하게 저장되었는지 확인하십시오!


답변

다음과 같이 작동하도록했습니다.

sshpass -p "password" rsync -ae "ssh -p remote_port_ssh" /local_dir  remote_user@remote_host:/remote_dir


답변

ssh 키를 사용하십시오.

ssh-keygenssh-copy-id.

그런 다음 다음과 같이 사용할 수 있습니다 rsync.

rsync -a --stats --progress --delete /home/path server:path


답변

또 다른 흥미로운 가능성 :

  1. RSA 또는 DSA 키 쌍 생성 (설명 된대로)
  2. 공개 키를 호스트에 넣기 (이미 설명했듯이)
  3. 운영:
rsync --partial --progress --rsh = "ssh -i dsa_private_file"host_name @ host : / home / me / d.

참고 : RSA / DSA 개인 키인 -i dsa_private_file

기본적으로이 접근 방식은 @Mad Scientist가 설명한 접근 방식과 매우 유사하지만 개인 키를 ~ / .ssh에 복사 할 필요는 없습니다. 즉, 임시 작업 (비밀번호없이 한 번만 액세스)에 유용합니다.