Alert

읎 Ꞁ은 Claude Code의 도움을 받아 작성되었습니닀

TL;DR

  • SCP와 SFTP는 SSH 위에서 동작하는 파음 전송 프로토윜
  • 파음 전송의 볞질은 직렬화 → 팚킷 분할 → 암혞화 → 띌우팅 → 재조늜 곌정
  • SCP는 닚발성 복사에 특화, SFTP는 읞터랙티람 파음 ꎀ늬에 특화
  • OpenSSH 9.0부터 SCP 낎부도 SFTP 프로토윜로 전환
  • 대안윌로 rsync, rclone 등 상황에 맞는 도구 선택 필요

1. 파음 전송읎란 묎엇읞가

서버 A에 있는 파음을 서버 B로 “볎낞닀”는 것은 묌늬적윌로 파음읎 읎동하는 것읎 아니닀. 파음의 바읎튞 데읎터륌 넀튞워크륌 통핎 복제하는 것읎닀. 읎 곌정을 읎핎하렀멎 몇 가지 핵심 개념을 뚌저 알아알 한닀.

파음읎란 묎엇읞가

욎영첎제 ꎀ점에서 파음은 디슀크에 저장된 연속된 바읎튞(byte) 시퀀슀닀. report.csv든 image.png든 볞질은 0곌 1로 읎룚얎진 바읎튞 배엎읎닀.

# 파음의 바읎튞 구조 확읞
xxd report.csv | head -5
# 00000000: 6e61 6d65 2c61 6765 2c63 6974 790a  name,age,city.

파음은 두 가지 정볎로 구성된닀.

  • 메타데읎터: 파음명, 크Ʞ, 권한, 생성/수정 시각 (inode에 저장)
  • 데읎터: 싀제 낎용 바읎튞
직렬화 (Serialization)

파음을 넀튞워크로 전송하렀멎 뚌저 연속된 바읎튞 슀튞늌윌로 변환핎알 한닀. 읎것읎 직렬화닀.

  • 메몚늬에 올띌간 파음 데읎터륌 순서가 볎장된 바읎튞 시퀀슀로 변환
  • 수신 잡에서 동음한 규칙윌로 역직렬화(deserialization)하여 원볞을 복원
  • 파음 전송에서는 파음 낎용 자첎가 읎믞 바읎튞 시퀀슀읎므로, 메타데읎터(파음명, 권한 등)륌 핚께 직렬화하는 것읎 핵심

2. 넀튞워크륌 통한 데읎터 전달 — OSI 7계잵곌 TCP/IP

파음의 바읎튞가 넀튞워크륌 타고 닀륞 서버에 도달하는 곌정은 계잵화된 프로토윜 슀택을 거친닀.

OSI 7계잵 몚덞곌 파음 전송의 ꎀ계
OSI 계잵프로토윜 · Ʞ술파음 전송에서의 역할
7. ApplicationSCP, SFTP, FTP, HTTP파음 전송 명령
6. Presentation데읎터 형식 · 암혞화SSH 암혞화
5. SessionSSH 섞션 ꎀ늬SSH 연결 수늜
4. TransportTCP팚킷 순서 볎장 · 재전송
3. NetworkIP띌우팅 · 목적지 결정
2. Data LinkEthernet, Wi-Fi프레임 전송
1. Physicalì „êž° · ꎑ 신혞묌늬적 전달

싀묎에서 더 많읎 쓰는 [[2. 넀튞워크 믞시적윌로 삎펎볎Ʞ#TCP/IP 몚덞 (TCP/IP 4계잵, 읞터넷 프로토윜 슀위튞, TCP/IP 프로토윜 슀택[ 1], 읎론볎닚 구현 쀑심)|TCP/IP 4계잵]] 윌로 볎멎 닀음곌 같닀.

TCP/IP 계잵역할파음 전송에서의 동작
Application프로토윜 규앜SCP/SFTP가 파음 데읎터륌 SSH 채널에 Ʞ록
Transport신뢰성 볎장TCP가 팚킷 순서 볎장, 유싀 시 재전송
Internet죌소 지정곌 띌우팅IP가 목적지 서버까지의 겜로륌 결정
Network Access묌늬적 전달읎더넷 프레임윌로 변환하여 싀제 전송
팚킷 분할곌 재조늜

10MB 파음을 한 번에 볎낌 수 없닀. TCP는 데읎터륌 섞귞뚌튞(segment) 닚위로 분할한닀.

Original file (10MB)
        │
        ▌
┌──────┬──────┬──────┬──────┬─────┐
│ seg1 │ seg2 │ seg3 │ seg4 │ ... │   TCP segments (MSS, ~1460 bytes)
└──┬───┎──┬───┎──┬───┎──┬───┎─────┘
   │      │      │      │
   ▌      ▌      ▌      ▌
┌──────┬──────┬──────┬──────┐
│ pkt1 │ pkt2 │ pkt3 │ pkt4 │         IP packets (MTU, ~1500 bytes)
└──────┮──────┮──────┮──────┘
   │      │      │      │
   ▌      ▌      ▌      ▌
   each packet is routed independently across the network
   │      │      │      │
   ▌      ▌      ▌      ▌
   reassembled by sequence number on the receiver

MSS와 MTU

  • MTU (Maximum Transmission Unit): 넀튞워크 읞터페읎슀가 한 번에 전송할 수 있는 최대 프레임 크Ʞ. 읎더넷 Ʞ볞값 1500 bytes
  • MSS (Maximum Segment Size): TCP 섞귞뚌튞의 최대 데읎터 크Ʞ. MTU에서 IP 헀더(20B)와 TCP 헀더(20B)륌 빌멎 1500 - 40 = 1460 bytes
  • 10MB 파음을 전송하멎 앜 7,200개의 팚킷읎 생성된닀
TCP의 신뢰성 볎장 메컀니슘

파음 전송에서 TCP가 쀑요한 읎유는 데읎터 묎결성을 볎장하Ʞ 때묞읎닀.

  • 순서 번혞 (Sequence Number): 각 바읎튞에 고유 번혞륌 부여하여 수신 잡에서 올바륞 순서로 재조늜
  • 확읞 응답 (ACK): 수신 잡읎 “여Ʞ까지 받았닀”고 알렀쀌
  • 재전송: ACK가 음정 시간 낎에 였지 않윌멎 핎당 섞귞뚌튞륌 닀시 전송
  • 첎크섬 (Checksum): 전송 쀑 비튞가 깚졌는지 검슝
  • 흐멄 제얎 (Flow Control): 수신 잡의 버퍌 상태에 따띌 전송 속도 조절 (Window Size)
  • 혌잡 제얎 (Congestion Control): 넀튞워크 혌잡도에 따띌 전송량을 동적 조절
sequenceDiagram
    participant S as 송신 ìž¡
    participant R as 수신 ìž¡
    S->>R: SEQ=1, 1460 bytes
    S->>R: SEQ=1461, 1460 bytes
    S->>R: SEQ=2921, 1460 bytes
    R-->>S: ACK=4381 (4380번짞 바읎튞까지 수신)
    S-xR: SEQ=4381, 1460 bytes (유싀)
    Note over S: 타임아웃 발생
    S->>R: SEQ=4381, 1460 bytes (재전송)
    R-->>S: ACK=5841

3. SSH — 볎안 채널의 êž°ë°˜

SCP와 SFTP륌 읎핎하렀멎 뚌저 읎듀의 토대읞 SSH(Secure Shell)륌 알아알 한닀.

SSH가 핎결하는 묞제

SSH 읎전의 원격 접속 도구(Telnet, rsh)는 데읎터륌 **평묞(plaintext)**윌로 전송했닀. 누군가 넀튞워크 쀑간에서 팚킷을 가로채멎(슀니핑) 비밀번혞와 전송 데읎터가 귞대로 녞출되었닀.

[Telnet]
client ──── password: abc123  (plaintext) ────▶ server
                          │
                       (!) sniffer reads the password directly
 
[SSH]
client ──── 3f:a2:9b:...  (encrypted) ────▶ server
                          │
                       (!) sniffer only sees meaningless bytes
SSH 연결 수늜 곌정

SSH 연결은 섞 닚계로 읎룚얎진닀.

1닚계: TCP 연결 수늜 (3-way handshake)

sequenceDiagram
    participant C as 큎띌읎얞튞
    participant S as 서버 (포튞 22)
    C->>S: SYN
    S->>C: SYN + ACK
    C->>S: ACK
    Note over C,S: TCP 연결 수늜 완료

2닚계: SSH í‚€ 교환곌 암혞화 협상

sequenceDiagram
    participant C as 큎띌읎얞튞
    participant S as 서버
    S->>C: 프로토윜 버전 전송 (SSH-2.0-OpenSSH_9.7)
    C->>S: 프로토윜 버전 전송 (SSH-2.0-OpenSSH_9.7)
    S->>C: 지원 알고늬슘 목록 (KEX / 암혞화 / MAC / 압축)
    C->>S: 지원 알고늬슘 목록
    S->>C: í‚€ 교환 KEX (Diffie-Hellman / ECDH)
    C->>S: í‚€ 교환 KEX
    Note over C,S: 양쪜 몚두 동음한 섞션 í‚€ 생성 완료<br/>읎후 몚든 통신은 읎 킀로 암혞화

Diffie-Hellman í‚€ 교환의 핵심

두 당사자가 비밀 킀륌 직접 전송하지 않고도 동음한 공유 비밀(shared secret)을 만듀얎낞닀. 비유하멎 “두 사람읎 각자 비밀 색을 섞얎서 같은 최종 색을 만드는 것”곌 같닀. 넀튞워크륌 도청핎도 쀑간 값만윌로는 최종 킀륌 계산할 수 없닀.

3닚계: 사용자 읞슝

  client                                 server
  │                                            │
  │──── choose auth method ───────────────────▶│
  │                                            │
  ├─[ public-key auth ]─────────────────────────
  │──── "authenticate with this public key" ──▶│
  │◀─── "that key is in authorized_keys" ──────│
  │──── data signed with the private key ─────▶│
  │◀─── authentication success ────────────────│
  │                                            │
  ├─[ password auth ]───────────────────────────
  │──── encrypted password ───────────────────▶│
  │◀─── authentication success ────────────────│
  │                                            │
SSH 채널 (Channel) 구조

하나의 SSH 연결 위에 여러 녌늬 채널을 ì—Ž 수 있닀. 읎것읎 SSH의 강점읎닀.

┌──── SSH connection (single TCP connection) ──────────────────────────┐
│                                                                      │
│     ┌─────────────────┐   ┌─────────────────┐   ┌─────────────────┐  │
│     │ channel 0       │   │ channel 1       │   │ channel 2       │  │
│     │ shell session   │   │ SFTP subsystem  │   │ port forwarding │  │
│     └─────────────────┘   └─────────────────┘   └─────────────────┘  │
│                                                                      │
│  all channels are multiplexed into one encrypted TCP stream          │
└──────────────────────────────────────────────────────────────────────┘

각 채널은 흐멄 제얎와 데읎터 전송읎 독늜적읎닀. SFTP는 읎 채널 구조륌 활용하여 SSH 연결 위에 **서람시슀템(subsystem)**윌로 동작한닀.


4. SCP (Secure Copy Protocol)

개념

SCP는 SSH 위에서 동작하는 닚방향 파음 복사 프로토윜읎닀. BSD의 rcp (remote copy) 명령을 SSH로 감싌 것읎 시쎈닀.

동작 원늬
scp local.txt user@server:/home/user/

싀행 흐멄:
1. SSH 연결 수늜 (위의 3닚계)
2. 원격 서버에서 scp 프로섞슀 싀행 (수신 몚드)
3. 프로토윜 메시지로 파음 메타데읎터 전송
4. 파음 데읎터륌 SSH 채널에 슀튞늬밍
5. 전송 완료 후 연결 종료

SCP 프로토윜은 맀우 닚순한 텍슀튞 êž°ë°˜ 명령을 사용한닀.

Sender -> Receiver:
  "C0644 1048576 local.txt\n"     # file mode, size, name
  [1048576 bytes of data]          # actual file content
  "\0"                             # transfer-complete signal
 
Receiver -> Sender:
  "\0"                             # OK response
  • C: 음반 파음 전송 (디렉토늬는 D)
  • 0644: 파음 퍌믞션
  • 1048576: 파음 크Ʞ (bytes)
  • local.txt: 파음명
Ʞ볞 사용법
# 로컬 → 원격
scp file.txt user@host:/path/to/dest/
 
# 원격 → 로컬
scp user@host:/path/to/file.txt ./local/
 
# 디렉토늬 재귀 복사
scp -r ./mydir user@host:/path/
 
# 포튞 지정
scp -P 2222 file.txt user@host:/path/
 
# 대역폭 제한 (Kbit/s 닚위)
scp -l 8000 bigfile.tar.gz user@host:/path/   # 1MB/s로 제한
 
# 압축 전송
scp -C largefile.log user@host:/path/
 
# 쀑간 서버 겜유 (ProxyJump)
scp -J jumphost user@target:/path/file.txt ./
SCP의 한계
  • 읎얎받Ʞ 불가: 전송읎 쀑닚되멎 처음부터 닀시
  • 디렉토늬 탐색 불가: 원격 파음 목록을 볌 수 없음
  • 파음명 검슝 믞흡: 곌거 파음명 êž°ë°˜ 볎안 췚앜점읎 발견됚 (CVE-2019-6111)
  • 심볌늭 링크 처늬 믞흡: 예상치 못한 파음 덮얎쓰Ʞ 가능성

SCP 프로토윜의 사싀상 퇎출

OpenSSH 8.0 (2019)부터 SCP의 볎안 묞제륌 겜고하Ʞ 시작했고 **OpenSSH 9.0 (2022)**부터 scp 명령은 낎부적윌로 SFTP 프로토윜을 사용한닀. 명령얎 읞터페읎슀는 동음하지만 전송 프로토윜읎 바뀌었닀.


5. SFTP (SSH File Transfer Protocol)

개념

SFTP는 SSH 위에서 동작하는 양방향 파음 ꎀ늬 프로토윜읎닀. 읎늄에 FTP가 듀얎가지만 FTP와 전혀 닀륞 프로토윜읎닀.

FTPSFTP
êž°ë°˜ 프로토윜자첎 프로토윜SSH
포튞21 (제얎) + 20 (데읎터)22 (SSH 포튞 하나)
암혞화없음 (FTPS는 TLS 추가)SSH에 의한 전첎 암혞화
방화벜데읎터 포튞 동적 할당윌로 까닀로움닚음 포튞로 닚순
섀계 시Ʞ1971년2001년 (SSH-2 êž°ë°˜)
동작 원늬

SFTP는 SSH 서람시슀템윌로 동작한닀. SSH 연결읎 수늜된 후 ê·ž 위에 SFTP 채널을 ì—°ë‹€.

1. SSH 연결 수늜
2. 큎띌읎얞튞 → 서버: "subsystem sftp" 요청
3. 서버: sftp-server 프로섞슀 싀행
4. 읎후 바읎너늬 팚킷윌로 요청/응답 교환

SFTP는 SCP와 달늬 구조화된 바읎너늬 팚킷을 사용한닀.

SFTP packet structure:
┌──────────┬──────┬────────┬──────────┐
│ length   │ type │ req_id │ payload  │
│ 4 bytes  │ 1 B  │ 4 B    │ variable │
└──────────┮──────┮────────┮──────────┘
 
죌요 팚킷 타입:
  SSH_FXP_INIT      (1)   - 쎈Ʞ화
  SSH_FXP_OPEN      (3)   - 파음 ì—Žêž°
  SSH_FXP_CLOSE     (4)   - 파음 ë‹«êž°
  SSH_FXP_READ      (5)   - 파음 읜Ʞ
  SSH_FXP_WRITE     (6)   - 파음 ì“°êž°
  SSH_FXP_STAT      (7)   - 파음 정볎 조회
  SSH_FXP_OPENDIR   (11)  - 디렉토늬 ì—Žêž°
  SSH_FXP_READDIR   (12)  - 디렉토늬 읜Ʞ
  SSH_FXP_MKDIR     (14)  - 디렉토늬 생성
  SSH_FXP_REMOVE    (13)  - 파음 삭제
  SSH_FXP_RENAME    (18)  - 읎늄 변겜
파음 닀욎로드 곌정 상섞
sequenceDiagram
    participant C as 큎띌읎얞튞
    participant S as 서버 (sftp-server)
    C->>S: SSH_FXP_INIT (version=3)
    S->>C: SSH_FXP_VERSION (version=3)
    C->>S: SSH_FXP_OPEN (/data/file.csv)
    S->>C: SSH_FXP_HANDLE (handle=0x01)
    C->>S: SSH_FXP_READ (handle, offset=0)
    S->>C: SSH_FXP_DATA (32768 bytes)
    C->>S: SSH_FXP_READ (handle, offset=32768)
    S->>C: SSH_FXP_DATA (32768 bytes)
    C->>S: SSH_FXP_READ (handle, offset=65536)
    S->>C: SSH_FXP_STATUS (EOF, 파음 끝)
    C->>S: SSH_FXP_CLOSE (handle)
    S->>C: SSH_FXP_STATUS (OK)

왜 핞듀(handle) Ʞ반읞가?

SFTP는 음반 파음시슀템 API와 유사하게 섀계되었닀. open → read/write → close 팚턎은 POSIX 파음 I/O와 동음한 구조닀. 읎 덕분에 임의 위치 읜Ʞ(seek), 읎얎받Ʞ, 부분 업데읎튞가 가능하닀.

Ʞ볞 사용법 — 배치 몚드
# 읞터랙티람 접속
sftp user@host
 
# 접속 후 사용 가능한 명령
sftp> ls                          # 원격 파음 목록
sftp> lls                         # 로컬 파음 목록
sftp> cd /data                    # 원격 디렉토늬 읎동
sftp> lcd ~/downloads             # 로컬 디렉토늬 읎동
sftp> get remote_file.csv         # 닀욎로드
sftp> put local_file.csv          # 업로드
sftp> mget *.log                  # 닀쀑 닀욎로드
sftp> mput *.csv                  # 닀쀑 업로드
sftp> mkdir new_dir               # 원격 디렉토늬 생성
sftp> rm old_file.txt             # 원격 파음 삭제
sftp> rename old.txt new.txt      # 읎늄 변겜
sftp> df -h                       # 원격 디슀크 용량 확읞
sftp> !command                    # 로컬 ì…ž 명령 싀행
sftp> exit
# 비대화형 배치 몚드
sftp -b batch.txt user@host
 
# batch.txt 낎용:
# cd /data
# get report_2026.csv
# get summary.csv
# exit
# 읎얎받Ʞ (쀑닚된 전송 재개)
sftp> reget large_backup.tar.gz
 
# 포튞 지정
sftp -P 2222 user@host

6. 전송 곌정 전첎 귞늌 — SCP로 파음을 볎낌 때 싀제로 음얎나는 음

scp report.csv user@10.0.1.50:/data/ 륌 싀행했을 때 음얎나는 전첎 곌정을 바닥부터 추적한닀.

┌─ Client (10.0.1.10) ────────────────────────────────────────┐
│                                                             │
│  1. shell spawns the scp process                            │
│  2. scp calls the SSH library                               │
│                                                             │
│  ┌─ SSH layer ───────────────────────────────────────────┐  │
│  │ 3. TCP 3-way handshake -> 10.0.1.50:22                │  │
│  │ 4. SSH protocol version exchange                      │  │
│  │ 5. key exchange (ECDH) -> session key                 │  │
│  │ 6. server host key check (~/.ssh/known_hosts)         │  │
│  │ 7. user authentication (public key or password)       │  │
│  │ 8. open SSH channel                                   │  │
│  └───────────────────────────────────────────────────────┘  │
│                                                             │
│  ┌─ SCP protocol ────────────────────────────────────────┐  │
│  │ 9.  run scp -t /data/ on the remote (receive mode)    │  │
│  │ 10. send metadata: C0644 2048000 report.csv           │  │
│  │ 11. stream file data (2MB)                            │  │
│  └───────────────────────────────────────────────────────┘  │
│                                                             │
│  ┌─ TCP/IP layer ────────────────────────────────────────┐  │
│  │ 12. split encrypted SSH data into TCP segments        │  │
│  │ 13. add IP header (src 10.0.1.10 -> dst 10.0.1.50)    │  │
│  │ 14. encapsulate into Ethernet frames                  │  │
│  │ 15. NIC converts to electrical/optical signal & sends │  │
│  └───────────────────────────────────────────────────────┘  │
│                                                             │
└─────────────────────────────────────────────────────────────┘
                               │                               
                (*) network: switches, routers                 
                               │                               
┌─ Server (10.0.1.50) ────────────────────────────────────────┐
│  16. NIC receives frames                                    │
│  17. IP/TCP decapsulation -> extract SSH data               │
│  18. decrypt with the SSH session key                       │
│  19. scp process receives the data                          │
│  20. create and write /data/report.csv                      │
│  21. set permissions (0644)                                 │
│  22. send completion response -> close connection           │
└─────────────────────────────────────────────────────────────┘
SFTP로 볎낌 때 달띌지는 부분

위 흐늄에서 SSH 계잵(38)곌 TCP/IP 계잵(1222)은 SFTP도 똑같읎 거친닀. 바뀌는 걎 가욎데 프로토윜 계잵 하나뿐읎닀. SCP가 scp -t로 메타데읎터와 파음 바읎튞륌 흘렀볎낎는 자늬에서, SFTP는 서람시슀템을 띄우고 구조화된 팚킷을 죌고받는닀.

┌─ SFTP protocol layer (replaces SCP steps 9-11) ───────┐
│ request "subsystem sftp" -> server starts sftp-server │
│ SSH_FXP_OPEN /data/report.csv -> SSH_FXP_HANDLE       │
│ SSH_FXP_WRITE in 32KB chunks (offset by offset)       │
│ SSH_FXP_CLOSE -> SSH_FXP_STATUS (OK)                  │
└───────────────────────────────────────────────────────┘

7. 암혞화 — 전송 쀑 데읎터륌 볎혞하는 원늬

SSH는 섞 가지 방식을 엮얎 채널을 볎혞한닀. 싀제 데읎터 전송은 하나의 섞션 킀로 암·복혞화하는 대칭 암혞화(chacha20-poly1305, aes256-gcm 등)가 ë§¡ê³ , 섞션 í‚€ 교환곌 사용자 읞슝은 공개킀·개읞킀 쌍을 쓰는 비대칭 암혞화가 닎당하며, 전송 쀑 변조는 MAC윌로 검슝한닀. 최신 알고늬슘은 암혞화와 묎결성 검슝을 한 연산윌로 처늬하는 AEAD 몚드띌 MAC을 따로 계산하지 않는닀. 각 방식의 원늬와 윔드는 AES·RSA·핎싱 구현에 정늬돌 있닀.


8. SCP vs SFTP 비교

항목SCP (레거시)SFTP
프로토윜 구조텍슀튞 êž°ë°˜, 닚순바읎너늬 팚킷, 구조화
파음 탐색불가가능 (ls, cd 등)
읎얎받Ʞ불가가능 (reget/reput)
부분 읜Ʞ불가가능 (offset 지정)
파음 삭제/읎늄변겜불가가능
디렉토늬 생성불가가능
속도앜간 빠늄 (였버헀드 적음)팚킷 였버헀드 있음
볎안파음명 검슝 췚앜점 졎재구조화된 프로토윜로 안전
상태사싀상 퇎출 (OpenSSH 9.0+)현행 표쀀

싀묎 가읎드

  • 슀크늜튞에서 닚순 복사: scp 명령 (낎부적윌로 SFTP 동작)
  • 읞터랙티람 파음 ꎀ늬: sftp
  • 대용량/반복 동Ʞ화: rsync
  • 큎띌우드 슀토늬지: rclone

9. ꎀ렚 도구 비교

rsync

SCP/SFTP와 자죌 비교되는 도구. **ì°šë¶„ 전송(delta transfer)**읎 핵심읎닀.

# Ʞ볞 사용법 (SSH êž°ë°˜)
rsync -avz ./data/ user@host:/backup/data/
 
# 죌요 옵션
# -a : 아칎읎람 몚드 (퍌믞션, 타임슀탬프, 심볌늭 링크 볎졎)
# -v : 상섞 출력
# -z : 전송 쀑 압축
# --progress : 진행률 표시
# --delete : 원볞에 없는 파음은 대상에서도 삭제

rsync의 ì°šë¶„ 전송 알고늬슘:

1. 수신 잡읎 Ʞ졎 파음의 랔록별 첎크섬을 계산하여 송신 잡에 전달
2. 송신 잡읎 새 파음을 랔록 닚위로 첎크섬 비교
3. 변겜된 랔록만 전송
4. 수신 잡읎 Ʞ졎 랔록 + 새 랔록을 조합하여 파음 재구성

결곌: 1GB 파음에서 10MB만 바뀌었닀멎 10MB만 전송
도구 선택 가읎드
상황도구
닚순 파음 복사 (1~2개)scp
원격 파음 탐색·ꎀ늬sftp
디렉터늬 동Ʞ화 / 대용량 반복 전송rsync
큎띌우드 슀토늬지 (S3, GCS 등)rclone
자동화 파읎프띌읞 / CI/CDrsync 또는 전용 SDK

10. 볎안 싀묎 팁

# SSH í‚€ 생성 (Ed25519 권장)
ssh-keygen -t ed25519 -C "user@company.com"
 
# 공개킀 원격 서버에 등록
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host
 
# 읎후 비밀번혞 없읎 SCP/SFTP 사용 가능
scp -i ~/.ssh/id_ed25519 file.txt user@host:/path/

여Ʞ서 닀룬 í‚€ êž°ë°˜ 읞슝곌 ì ‘ê·Œ 제한은 넀튞워크 볎안을 읎룚는 한 축읎닀.

볎안 첎크늬슀튞

  • 비밀번혞 읞슝 대신 공개킀 읞슝 사용
  • í‚€ 알고늬슘은 Ed25519 권장 (RSA륌 쓎닀멎 최소 4096bit)
  • 서버 ìž¡ /etc/ssh/sshd_config에서 PasswordAuthentication no 섀정
  • SSH 포튞륌 Ʞ볞 22에서 변겜하는 것은 볎안 횚곌 믞믞 (포튞 슀캔윌로 쉜게 발견)
  • 쀑요한 것은 fail2ban 같은 람룚튞포슀 방얎와 í‚€ êž°ë°˜ 읞슝