Infra/Linux

리눅스에서 scp 사용법: 안전하게 파일 전송하기

누구세연 2024. 9. 11. 22:58

리눅스에서 파일을 원격 서버와 주고받는 상황은 자주 발생합니다.

이때 보안이 중요하다면 scp 명령어를 사용하는 것이 좋습니다.

scp는 Secure Copy의 약자로 SSH(보안쉘)를 사용하여 데이터를 암호화하며 파일을 전송하는 방법입니다.

이번 글에서는 scp의 기본 개념과 사용법을 알아보겠습니다.👀

 

scp 란?

scp는 SSH를 통해 파일을 안전하게 복사하는 명령어로, 로컬과 원격 시스템 간에 파일을 복사하거나, 원격 시스템 간에도 파일을 전송할 수 있습니다. 보안상 중요한 데이터 전송이 필요한 상황에서 주로 사용됩니다.

scp 명령어의 기본 구조는 아래와 같습니다.

scp [옵션] [복사할 파일] [유저명@호스트명:저장할 위치]

 

 

scp 사용 예시

로컬에서 원격 서버로 파일 전송하기

scp local_file.txt user@remote_host:/remote/directory/
  • local_file.txt 전송할 로컬 파일
  • user@remote_host 원격 서버의 사용자명과 IP 주소 또는 도메인
  • /remote/directory/ 파일을 저장할 원격 서버의 경로
scp myfile.txt user@192.168.1.100:/home/user/

이 명령어는 로컬의 myfile.txt 파일을 IP 주소가 192.168.1.100인 원격 서버의 /home/user/ 디렉터리에 복사합니다.

 

원격 서버에서 로컬로 파일 다운로드하기

scp user@remote_host:/remote/file.txt /local/directory/
  • user@remote_host:/remote/file.txt 원격 서버의 파일 경로
  • /local/directory/ 파일을 저장할 로컬 경로
scp user@192.168.1.100:/home/user/remote_file.txt /home/local_user/

이 명령어는 원격 서버의 /home/user/remote_file.txt 파일을 로컬 /home/local_user/ 디렉터리로 다운로드합니다.

 

원격 서버 간에 파일 전송하기

로컬 머신에서 직접 명령을 내리지만, 두 개의 원격 서버 간에 파일을 전송할 수도 있습니다.

scp user1@remote_host1:/remote/path/file.txt user2@remote_host2:/remote/path/

 

디렉터리 전체 전송하기(-r 옵션)

디렉터리와 그 하위의 모든 파일을 전송하려면 -r(recursive) 옵션을 사용합니다.

scp -r /local/directory user@remote_host:/remote/directory/

 

아래의 명령어는 로컬의 /home/local_user/documents 디렉터리를 원격 서버의 /home/user/ 디렉터리로 복사합니다.

scp -r /home/local_user/documents user@192.168.1.100:/home/user/

 

 

scp 사용 시 주의 사항

  • scp는 SSH를 기반으로 하므로, SSH 접속 설정이 올바르게 되어 있어야 합니다.
  • 원격 서버의 방화벽 설정이나 포트 허용 여부를 확인해야 합니다.
  • 전송 도중 네트워크가 불안정한 경우에는 전송이 중단될 수 있으니, 큰 파일 전송 시에는 rsync를 고려해 보세요.

'Infra > Linux' 카테고리의 다른 글

리눅스 크론탭(Linux crontab)으로 자동화 작업  (0) 2025.01.11
[Linux] 리눅스에서 grep 사용법  (0) 2024.09.14