다른 사용자로 rsync

다른 사용자로 rsync

일반 사용자로 follow 명령을 실행하면 모든 것이 올바르게 작동합니다.

fabio@myclient:~$ rsync -rv myserver:~/backup /home/fabio/backup/

사용자 상호 작용 없이 작동하지만 루트로 실행되는 스크립트에서 실행해야 하므로 다음을 시도했습니다.

root@myclient:~# sudo -u fabio rsync -rv myserver:~/backup /home/fabio/backup/

또한 다음을 시도했습니다.

root@myclient:~# su - fabio -c "rsync -rv myserver:~/backup /home/fabio/backup"

둘 다 작동하지만 "키에 대한 암호"를 물어보면 피할 수 있나요?

답변1

"키 암호"는 개인 SSH 키를 잠금 해제하기 위해 암호를 요구하는 SSH가 아닌 rsync또는 에서 나올 가능성이 높습니다.sudo

암호 없이 키를 사용하는 것은 권장하지 않으므로 스크립트가 루트로 실행되는 상황을 고려하십시오. 로그인한 후 스크립트가 항상 루트로 실행됩니까? 로그인 후 비밀번호를 한 번 입력해도 괜찮습니까?

이 경우 다음과 같은 것을 사용하는 것이 좋습니다.keychain사용자로 시작된 ssh-agent가 루트로 실행되는 동안 스크립트에서 사용되는지 확인하십시오. 로그인 후 암호를 한 번만 입력하면 되며 향후 호출에는 상호 작용이 필요하지 않도록 이를 설정할 수 있습니다.

그렇지 않은 경우 대화형 인증 없이 스크립트를 자율적으로 실행해야 하는 경우 백업 스크립트용으로 특별히 키 쌍을 생성한 다음 원격에서 다른 사용자로 인증하도록 하여 수행할 수 있는 작업을 제한하는 것이 좋습니다. end( fabio예: 가 아니라 fabio-backup) 또는 원격 끝에 있는 파일 command=의 인수 로 제한합니다 .authorized_keys(환경 변수를 확인해야 하므로 조금 더 복잡합니다 SSH_ORIGINAL_COMMAND. 참조).Authorized_keys(5)자세한 내용은)

답변2

SSH 개인 키는 암호로 보호됩니다. (로그인한) 사용자로 수동으로 실행하면 옛날에 암호 키 저장소를 저장한 SSH 에이전트를 사용합니다.

그러나 무인 실행 시에는 이런 일이 발생하지 않습니다. 결국 사용자는 로그인하지도 않았을 수 있습니다(따라서 해당 키 저장소를 사용할 수 없음). 항상 작동하려면 SSH 개인 키에서 암호를 제거해야 합니다( ssh-keygen -p사용자로 로그인한 경우를 통해 fabio- 새 암호를 입력하려면 Enter 키를 누르면 제거되어야 합니다).

사소한 보안 참고 사항: 개인 키가 암호로 보호되지 않으면 fabio계정에 액세스할 수 있는 사람은 먼저 사용자의 암호를 스니핑할 필요 없이 해당 키를 허용하는 다른 호스트에 SSH로 연결할 수도 있습니다.

관련 정보