비밀번호를 제공하지 않고 서버에서 파일 업로드 및 다운로드

비밀번호를 제공하지 않고 서버에서 파일 업로드 및 다운로드

cron 작업을 사용하여 서버에서 파일을 다운로드하고 싶기 때문에 scp 키워드를 통해 비밀번호를 제공하지 않고 명령을 사용해야 합니다.

어떻게 해야 합니까?

답변1

첫 번째 단계는 복사된 컴퓨터에서 개인-공개 키 쌍을 생성하는 것입니다.

ssh-keygen

기본값을 그대로 사용하시면 되며, 비밀번호는 입력하지 않으셔도 사용하실 수 있습니다. 시간이 좀 걸릴 수 있습니다.

두 번째 단계에서는 키 생성이 완료된 후 다음 명령을 사용하여 공개 키를 서버에 복사합니다.

ssh-copy-id username@server

적절한 usernameserver를 사용하려면 비밀번호가 필요합니다 username. 비밀번호가 없으면 username루트 계정을 통해 공개키가 포함된 파일을 복사해도 되지만, 해당 계정의 비밀번호를 임시로 만들어서 사용하는 것이 훨씬 간편합니다.ssh-copy-id

3단계: 다음 명령을 사용하여 설치된 공개 키가 유효한지 테스트합니다. ssh username@server또는scp somefile username@server:/var/tmp

4단계: crontab -e클라이언트 시스템에 cron job()을 추가합니다.

15 23 * * * scp username@server:/path/on/server/downloadfile /local/destination
17 23 * * * scp /local/source/somefile username@server:/path/on/server/uploaddirectory

/path/on/server/downloadfile매일 밤 11시 15분에 서버에서 파일을 복사하고 2분 후에 업로드를 시작합니다./local/source/somefile

고려해야 할 사항:

  • 복사 중인 클라이언트 시스템에 대한 액세스 보안과 보호되지 않은 개인 키가 있는 위치에 따라 계정을 username허용 scp하고 허용하지 않도록 계정을 변경하는 것을 고려해야 합니다 ssh.
  • 동일한 파일을 복사하고 내용이 대부분 변경된 경우(예: 완전히 다시 작성하기보다는 추가) rsync위의 SSH 키 쌍을 사용하는 것이 더 효율적입니다.

관련 정보