ioerror

scp 사용법 및 옵션 - SSH 프로토콜을 이용한 원격 파일 안전 복사 본문

OS

scp 사용법 및 옵션 - SSH 프로토콜을 이용한 원격 파일 안전 복사

반응형

 

scp - Secure Copy Protocol

scp는 SSH(Secure Shell) 프로토콜을 기반으로 네트워크를 통해 서로 다른 호스트 간에 파일이나 디렉터리를 안전하게 전송하는 유닉스/리눅스 명령어이다. 전송되는 모든 데이터와 인증 정보가 암호화되므로 보안성이 높으며, 로컬에서 원격, 원격에서 로컬, 원격에서 또 다른 원격으로의 파일 복사를 지원한다.

1. 명령어 용도

  • 사용가능 OS, Shell: All UNIX/Linux
  • 개발 환경에서 빌드된 결과물(JAR, ZIP 등)을 원격 배포 서버로 전송할 때 가장 일반적으로 사용된다.
  • 원격 서버의 로그 파일이나 백업 데이터를 로컬 분석 환경으로 복사해 올 때 활용된다.

2. 명령어 서식

scp [options] [user@]host1:file1 [user@]host2:file2

3. 명령어 옵션

  • 주요 옵션 소개 테이블
옵션 설명 사용가능 OS 및 쉘
-r 디렉터리를 재귀적(Recursive)으로 내부 모든 파일 및 하위 디렉터리 포함 복사 All UNIX/Linux
-P port SSH 기본 포트(22)가 아닌 지정한 원격 포트 번호로 접속 All UNIX/Linux
-i identity_file SSH 인증에 사용할 비밀키(Private Key) 파일 경로 지정 All UNIX/Linux
-C 전송 시 데이터 압축(Compression)을 활성화하여 전송 속도 향상 All UNIX/Linux
-p 원본 파일의 수정 시간, 접근 시간, 권한 모드를 보존하여 전송 All UNIX/Linux
-v 디버그 메시지를 상세히 출력하여 접속 오류 분석 시 활용 All UNIX/Linux
-q 진행 상황 표시줄이나 경고 메시지를 출력하지 않는 정숙 모드(Quiet) All UNIX/Linux
-3 두 원격 호스트 간 복사 시 로컬을 거쳐 전송 (원격 간 직접 접속 불가 시 사용) OpenSSH
  • 명령어 옵션 사용시 결과 예시
# 로컬 파일을 원격 서버로 전송 (기존 포트 대신 2222 포트 사용 및 압축 적용)
$ scp -P 2222 -C app.tar.gz user@192.168.1.100:/var/www/
# app.tar.gz                                    100%   15MB   5.2MB/s   00:03

# 원격 서버의 디렉터리를 로컬로 재귀 복사 (비밀키 인증 지정)
$ scp -r -i ~/.ssh/id_rsa user@192.168.1.100:/var/log/nginx ./server_logs/
# access.log                                    100% 2048KB   2.0MB/s   00:01
# error.log                                     100%  512KB   1.2MB/s   00:00
  • app.tar.gz / access.log: 전송 중인 파일 이름이다.
  • 100%: 파일 전송 완료율을 의미한다.
  • 15MB / 2048KB: 전송된 파일의 총 용량이다.
  • 5.2MB/s / 2.0MB/s: 실시간 데이터 전송 속도이다.
  • 00:03 / 00:01: 전송에 소요된 남은 시간/총 시간이다.

4. 명령어 특이사항(유의사항)

  • 대문자 -P 옵션 유의: SSH 명령어에서는 소문자 -p가 포트 지정 옵션이지만, scp에서는 대문자 -P가 포트 지정이며 소문자 -p는 파일 권한/시간 보존 옵션이므로 주의해야 한다.
  • 이어받기 미지원: 전송 중 네트워크가 끊어질 경우 처음부터 다시 전송해야 한다. 대용량 파일 전송이나 이어받기가 필요한 경우에는 rsync 명령어를 사용하는 것이 권장된다.
  • SFTP로의 전환 추세: 최신 OpenSSH 버전에서는 scp 프로토콜의 보안 위험성 및 유지보수 문제로 인해 내부적으로 SFTP 프로토콜을 사용하도록 기본 동작 방식이 전환되고 있다.

관련 명령어들

  • ssh: 원격 호스트에 암호화된 셸 세션으로 안전하게 접속한다.
  • rsync: 파일 및 디렉터리를 효율적으로 동기화하며 이어받기를 지원한다.
  • sftp: SSH 기반의 대화형 파일 전송 프로그램이다.
  • cp: 로컬 파일 시스템 내에서 파일 및 디렉터리를 복사한다.

https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference

 

UNIX & Linux Command Reference

유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하

ioerror.tistory.com

 

 

반응형
Comments