>

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

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

    "키 암호"는 rsync 가 아닌 SSH에서 온 것 같습니다.  또는 sudo 개인 SSH 키 잠금을 해제 할 수있는 암호 구를 요구합니다.

    암호없이 키를 사용하지 않는 것이 좋으므로 스크립트가 루트로 실행되는 환경을 고려하십시오. 로그인 후 스크립트는 항상 루트로 실행됩니까? 로그인 후 언젠가 암호를 입력해도 괜찮습니까?

    이 경우 keychain 와 같은 것을 사용하는 것이 좋습니다.  스크립트가 루트로 실행되는 동안 사용자가 ssh-agent를 사용자로 시작했는지 확인하십시오. 로그인 후 언젠가 암호문을 한 번만 입력하면되고 나중에 호출 할 때 상호 작용할 필요가 없도록 설정할 수 있습니다.

    이 경우가 아니라면 대화식 인증없이 스크립트를 자율적으로 실행해야하는 경우 백업 스크립트 전용 키 페어를 생성 한 다음 다른 사용자로 인증하여 수행 할 수있는 작업을 제한하십시오. 원격 끝에 (즉, fabio 가 아님) , 그러나 예를 들어 fabio-backup ) 또는 command= 로 제한  당신의 .authorized_keys 의 논쟁  원격 끝에있는 파일 ( SSH_ORIGINAL_COMMAND 를 살펴볼 필요가 있기 때문에 조금 더 복잡하지만)  환경 변수;자세한 내용은authorized_keys (5)를 참조하십시오)

  • 답변 # 2

    ssh 개인 키는 암호로 보호됩니다. (로그인 한) 사용자로 수동으로 실행할 때 암호 구문 키 저장소를 한 번에 한 번 저장 한 ssh 에이전트를 사용합니다.

    그러나 무인으로 실행하면 사용자가 로그인하지 않아 키 저장소를 사용할 수 없게 될 수도 있습니다. 항상 작동하려면 ssh 개인 키에서 암호를 제거해야합니다 ( ssh-keygen -p 를 통해)  사용자 fabio 로 로그인 한 경우  -새 비밀번호 문구를 입력하려면 Enter 키를 누르십시오.

    사소한 보안 참고 사항 : 개인 키가 암호로 보호되지 않으면 fabio 에 액세스 할 수있는 사람  계정은 또한 사용자로부터 암호를 스니핑 할 필요없이 해당 키를 허용하는 다른 호스트와 마찬가지로 ssh 할 수 있습니다.

  • 이전 프로세스를 깨끗하게 종료
  • 다음 shell script - 잘린 줄 아래에 특정 줄을 가져옵니다