![cron을 통해 ssh를 사용하여 rsync에 대한 비밀번호 없는 액세스가 실패함](https://linux55.com/image/91351/cron%EC%9D%84%20%ED%86%B5%ED%95%B4%20ssh%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20rsync%EC%97%90%20%EB%8C%80%ED%95%9C%20%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%20%EC%97%86%EB%8A%94%20%EC%95%A1%EC%84%B8%EC%8A%A4%EA%B0%80%20%EC%8B%A4%ED%8C%A8%ED%95%A8.png)
비밀번호(Ubuntu) 없이 SSH 키를 설정하고 이를 원격 서버(Centos6)에 복사했습니다. 내 사용자 이름으로 SSH를 사용하여 성공적으로 로그인할 수 있으며 비밀번호는 필요하지 않습니다.
터미널에서 루트가 아닌 사용자 이름으로 다음 스크립트를 실행하면 작동합니다. 내 사용자 이름으로 cron을 통해 실행하면 다음 응답과 함께 실패합니다.
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
스크립트는 다음과 같습니다.
#!/bin/bash
export PATH=/home/<username>/git/kodi-playercorefactory/bash-scripts:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
rsync -rvzO -e 'ssh -p 6135 -i /home/<username>/.ssh/id_rsa.pub' <username>@xx.xxx.xx.xx:<filename> <filename>
어떤 도움이라도 대단히 감사하겠습니다.
답변1
옵션에는 공개 키가 아닌 개인 키가 포함된 파일 이름을 입력해야 합니다 -i
. ssh
그러나 공개 키가 포함된 파일 이름을 name으로 지정했을 수도 있습니다 /home/<username>/.ssh/id_rsa.pub
.
개인 키가 에 있다고 가정하면 /home/<username>/.ssh/id_rsa
다음이 작동합니다.
rsync -rvzO -e 'ssh -p 6135 -i /home/<username>/.ssh/id_rsa' <username>@xx.xxx.xx.xx:<filename> <filename>