다른 사용자로 rsync

다른 사용자로 rsync

일반 사용자로 다음 명령을 실행하면 모든 것이 잘 작동합니다.

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. sudoSSH 개인 키를 잠금 해제하려면 비밀번호가 필요합니다.

비밀번호 없이 키를 사용하는 것은 별로 권장하지 않으므로 스크립트가 루트로 실행되는 경우를 고려해보세요. 로그인하면 스크립트가 항상 루트로 실행됩니까? 로그인 후 비밀번호를 한 번만 입력할 수 있나요?

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

그렇지 않고 스크립트가 대화형 인증 없이 자동으로 실행되어야 하는 경우 백업 스크립트용으로 특별히 키 쌍을 생성한 다음 다른 사용자의 인증 끝으로 원격 인증하도록 하여 수행할 수 있는 작업을 제한합니다. (즉 fabio, 가 아니라 예를 들어) 또는 원격 측 파일의 매개변수를 사용하여 제한합니다 fabio-backup(이것은 환경 변수를 확인해야 하기 때문에 조금 더 복잡합니다. 참조).command=.authorized_keysSSH_ORIGINAL_COMMAND인증키(5)세부)

답변2

귀하의 SSH 개인 키는 비밀번호로 보호되어 있습니다. (로그인한) 사용자로 수동으로 실행하면 비밀번호 키 저장소를 저장하는 데 사용한 SSH 에이전트를 사용합니다.

그러나 무인 실행 시에는 이런 일이 발생하지 않습니다. 결국 사용자가 로그인하지도 않았을 수 있습니다(따라서 키 저장소를 사용할 수 없게 됩니다). 항상 작동하려면 SSH 개인 키에서 비밀번호를 제거해야 합니다( ssh-keygen -p사용자로 로그인한 경우 fabioEnter 키를 눌러 새 비밀번호를 얻으면 제거됩니다).

fabio사소한 보안 참고 사항: 개인 키가 비밀번호로 보호되지 않은 경우 계정에 대한 액세스 권한을 얻은 사람은 먼저 사용자의 비밀번호를 스니핑하지 않고도 키를 허용하는 다른 호스트로 SSH를 통해 연결할 수 있습니다.

관련 정보