Programming

rsync와 함께 자격 증명 파일을 어떻게 사용합니까?

procodes 2020. 7. 18. 23:13
반응형

rsync와 함께 자격 증명 파일을 어떻게 사용합니까?


rsync와 함께 자격 증명 파일을 어떻게 사용합니까?

이것은 내가 구문입니다 생각 나는 연결 신원 파일을 사용하여 rsync와 함께 사용되어야한다 :

rsync -avz -e 'ssh -p1234 -i ~ / .ssh / 1234-identity'\
"/ local / dir /"remoteUser@22.33.44.55 : "/ remote / dir /"

그러나 그것은 나에게 오류를주고있다 :

경고 : ID 파일 ~ / .ssh / 1234-identity에 액세스 할 수 없음 : 해당 파일 또는 디렉토리가 없습니다.

파일은 괜찮고 권한이 올바르게 설정되어 있으며 적어도 내 구문에서 rsync가 아닌 ssh를 수행 할 때 작동합니다. 내가 뭘 잘못하고 있죠? 원격 시스템에서 ID 파일을 찾으려고합니까? 그렇다면 로컬 컴퓨터 에서 ID 파일을 사용하도록 어떻게 지정 합니까?


당신은 사용할 수 있습니다 ssh-agentssh-add메모리에 키를로드 할 수 있습니다. sshssh-agent에서 ID를 찾으면 자동으로 시도합니다. 명령은

eval $(ssh-agent) # Create agent and environment variables
ssh-add ~/.ssh/1234-identity

ssh-agent암호화되지 않은 ssh 키를 메모리에 보유하는 사용자 데몬입니다. ssh는 ssh-agent가 실행될 때 출력하는 환경 변수를 기반으로이를 찾습니다. eval이 출력을 평가하는 데 사용 하면 환경 변수가 생성됩니다. ssh-add키 메모리를 관리하는 명령입니다. ssh-add를 사용하여 에이전트를 잠글 수 있습니다. 키의 기본 수명은 ssh-agent가 시작될 때 지정되거나 키가 추가 될 때 지정 될 수 있습니다.

~ / .ssh / config 파일을 설정하여 포트 및 키 정의를 제공 할 수도 있습니다. (자세한 옵션은`man ssh_config를 참조하십시오.)

host 22.33.44.55
    IdentityFile ~/.ssh/1234-identity
    Port 1234

ssh 명령을 작은 따옴표로 묶으면 ~또는에 필요한 쉘 확장을 막을 수 $HOME있습니다. 작은 따옴표로 키의 전체 또는 상대 경로를 사용할 수 있습니다.


둘 중 하나를 사용하십시오 $HOME

rsync -avz -e "ssh -p1234  -i \"$HOME/.ssh/1234-identity\"" dir remoteUser@server:

또는 키의 전체 경로 :

rsync -avz -e "ssh -p1234  -i /home/username/.ssh/1234-identity" dir user@server:

우분투에서 rsync 3.0.9로 테스트


신원 키 파일의 절대 경로를 지정해야합니다. 이것은 아마도 rsync의 일종의 기발한 것입니다. (결국 완벽 할 수는 없습니다)

며칠 전에이 문제가 발생했습니다 :-)


이것은 나를 위해 작동

rsync -avz --rsh="ssh -p1234  -i ~/.ssh/1234-identity"  \
"/local/dir/" remoteUser@22.33.44.55:"/remote/dir/"

bash 또는 sh에서 명령을 실행하고 있습니까? 차이가 생길 수 있습니다. 교체 시도 ~와 함께 $HOME. -e옵션에 문자열을 큰 따옴표로 묶어보십시오 .


rsync와 함께 키 파일을 사용하십시오.

rsync -rave "ssh -i /home/test/pkey_new.pem" /var/www/test/ ubuntu@231.210.24.48:/var/www/test

참고 URL : https://stackoverflow.com/questions/5527068/how-do-you-use-an-identity-file-with-rsync

반응형