rsync로 ID 파일 (id_rsa)을 지정하십시오.


196

연구 기관이 호스팅하는 가상 머신 인 원격 서버에서 디렉토리를 정기적으로 백업해야합니다. 그들은 VM에 대한 액세스가 ssh 키를 통해 이루어 지도록 지시합니다.이 서버의 ssh 키를 rsync로 지정하는 방법을 알 수 없다는 점을 제외하고는 모두 좋습니다.

키 파일이 있으면 Rsync에 문제가 없지만 ~/.ssh/id_rsa다른 것이 있으면 얻을 수 Permission denied (publickey)있습니다.

ssh를 사용하면 ID 파일을로 지정할 수 -i있지만 rsync에는 해당 옵션이없는 것으로 보입니다.

로컬 컴퓨터의 키를 일시적으로로 이동하려고 시도 ~/.ssh/id_rsa했지만 비슷하게 작동하지 않습니다.

tl; dr

rsync로 ID 파일을 지정할 수 있습니까?


1
sudo rsync어떤 이유로 자신의 ssh 키를 사용하지 않는 을 수행 하는 데에도 유용 합니다.
ijoseph

1
@ijoseph 정확히, rsync -aAP "sudo -u user ssh" user@server:dir local_dir루트로 실행되는 크론 스크립트에서 동기화 할 때 사용 합니다
Martin Pecka

답변:


341

'-e'옵션을 통해 정확한 ssh 명령을 지정할 수 있습니다.

rsync -Pav -e "ssh -i $HOME/.ssh/somekey" username@hostname:/from/dir/ /to/dir/

많은 ssh 사용자는 ~ / .ssh / config 파일에 익숙하지 않습니다. 구성 파일을 통해 호스트 당 기본 설정을 지정할 수 있습니다.

Host hostname
    User username
    IdentityFile ~/.ssh/somekey

장기적으로 ~ / .ssh / config 파일을 배우는 것이 가장 좋습니다.


ssh_config에 IdentityFile이있는 데 도움이되지 않습니다. 문제없이 "ssh web1"을 할 수 있지만 web1 :에 rsync를 사용할 때 "Permission denied (publickey)"와 함께 실패합니다.
Zitrax

1
rsync -e 'ssh -vv'web1 : / etc / issue / tmp / issue
Dan Garthwaite

1
아 이를 자동화하고 비밀번호를 제공 할 수없는 경우 양쪽 끝에 추가 비밀번호없는 ssh 키가 필요합니다. 대화식 세션에서 비밀번호없이 rsync를 작동 시키려면 ssh-agent를 사용해야합니다.
Dan Garthwaite

16
멍멍이! ~/.ssh/config파일 - 당신은 나를 위해 새로운 우주를 열었습니다!
demaniak

2
~ / .ssh / config는 저를 구했습니다. 감사합니다.
smishra 2016 년

17

SSH 사용자 구성으로 수행 할 수 있습니다 : http://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/ 기본적으로 ~ / .ssh / config를 편집 하십시오 .

$ nano ~/.ssh/config
#Add Hosts below 
Host server1
HostName examplehost.com
User username
Port 22
IdentityFile /path/to/key

$ rsync -e ssh /home/user/directory user@remote.host.net:home/user/directory/

SSH, rsync를 사용하는 모든 프로그램에서 작동합니다.



4

참고 사항 :

1) 공개 키는 항상 원격 서버에 로그인하는 사용자의 홈 디렉토리에 있습니다. 즉, "백업"으로 로그인하면 /home/backup/.ssh/authorized_keys에 있습니다. 로그인시 사용자 ID는 대상에서 사용되는 공개 키를 정의합니다.

두 가지 방법으로 연결시 사용자 ID를 선택할 수 있습니다.

ssh user_id@destination.server
or
ssh -l user_id  destination_server     (<-- that is lower case "L")

반면에 개인 키는 Dan의 답변에 설명 된 것처럼 키를 재정의하지 않는 한 사용자의 homedir에서 비슷한 방식으로 사용됩니다.

2) 백업 목적으로 "rsync"와 같은 하나의 명령 만 실행하도록 제한된 제한된 키를 작성하는 것이 바람직 할 수 있습니다. 권한이없는 사용자 계정과 "sudo"를 사용하여 전체 서버를 원격으로 백업 할 수있는 "rsnapshot"백업과 관련하여 좋은 설명이 있습니다.

"스냅 샷"하우투

Rsnapshot은 다수의 원격 또는 로컬 서버를 쉽게 백업 할 수 있으므로 예약 및 중앙 집중식 백업 서버를 편리하게 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.