Study: ComputerScience(CS)/CS: Network

[Network] SSH 와 SFTP (feat. SCP vs SFTP)

DrawingProcess 2024. 3. 30. 12:11
λ°˜μ‘ν˜•
πŸ’‘ λ³Έ λ¬Έμ„œλŠ” '~'에 λŒ€ν•΄ 정리해놓은 κΈ€μž…λ‹ˆλ‹€.
μ„œλ²„μ— μ ‘μ†ν•˜κΈ° μœ„ν•΄ λŒ€ν‘œμ μœΌλ‘œ μ‚¬μš©ν•˜λŠ” ν”„λ‘œν† μ½œμΈ SSH와 SFTP에 λŒ€ν•΄ κΆκΈˆν•΄μ„œ 비ꡐ λΆ„μ„ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€. μΆ”κ°€λ‘œ 파일 μ „μ†‘ν•˜λŠ” ν”„λ‘œν† μ½œμΈ SCPμ™€μ˜ 차이점도 λ‹€λ£¨μ—ˆμœΌλ‹ˆ μ°Έκ³ ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

1. SSH (Secure SHell)

SSH λž€?

SSH은 원격지 호슀트 컴퓨터에 μ ‘μ†ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” 인터넷 ν”„λ‘œν† μ½œ μž…λ‹ˆλ‹€.

기쑴의 μœ λ‹‰μŠ€ μ‹œμŠ€ν…œ 셸에 원격 μ ‘μ†ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λ˜ 텔넷은 μ•”ν˜Έν™”κ°€ μ΄λ£¨μ–΄μ§€μ§€μ•Šμ•„ 계정 정보가 νƒˆμ·¨λ  μœ„ν—˜μ΄ λ†’μœΌλ―€λ‘œ μ•”ν˜Έν™”λ₯Ό μΆ”κ°€ν•΄μ„œ λ‚˜μ˜¨κ²ƒμ΄ SSH μž…λ‹ˆλ‹€.

  • κ°•λ ₯ν•œ 인증 방법
  • μ•ˆμ „ν•˜μ§€ λͺ»ν•œ λ„€νŠΈμ›Œν¬μ—μ„œ μ•ˆμ „ν•˜κ²Œ 톡신을 ν•  수 μžˆλŠ” κΈ°λŠ₯을 제곡
  • 기본적으둜 22번 포트λ₯Ό μ‚¬μš©
  • SSHλŠ” μ•”ν˜Έν™” 기법을 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ—, 톡신이 λ…ΈμΆœλœλ‹€κ³  ν•˜λ”λΌλ„ 이해할 수 μ—†λŠ” μ•”ν˜Έν™”λœ 문자둜 λ³΄μž…λ‹ˆλ‹€.

SSH의 μ£Όμš”κΈ°λŠ₯

  • λ³΄μ•ˆ 접속을 ν†΅ν•œ rsh, rcp, rlogin, rexec, telnet, ftp 등을 μ•ˆμ „ν•˜κ²Œ 제곡.
    • rsh(Remote SHell) : 컴퓨터 λ„€νŠΈμ›Œν¬μ˜ λ‹€λ₯Έ μ»΄ν“¨ν„°μ—μ„œ λ‹€λ₯Έ μ‚¬μš©μžλ‘œ μ…Έ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•  수 μžˆλŠ” μ»€λ§¨λ“œ 라인 ν”„λ‘œκ·Έλž¨
    • rcp(Remote Copy Protocol) : Unix 운영 μ²΄μ œμ—μ„œ μ‹œμŠ€ν…œ 간에 ν•˜λ‚˜ μ΄μƒμ˜ νŒŒμΌμ„ μ›κ²©μœΌλ‘œ λ³΅μ‚¬ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” λͺ…λ Ή. νŒŒμΌμ€ TCP/IP ν”„λ‘œν† μ½œμ„ 톡해 μ „μ†‘λ©λ‹ˆλ‹€. μ›κ²©μœΌλ‘œ νŒŒμΌμ„ λ³΅μ‚¬ν•œλ‹€λŠ” 점을 μ œμ™Έν•˜κ³€ cp λͺ…λ Ήκ³Ό λΉ„μŠ·ν•©λ‹ˆλ‹€.
    • rlogin(Remote login) : TCP/IP ν”„λ‘œν† μ½œμ„ 톡해 ν†΅μ‹  μ‚¬μš©μžκ°€ λ„€νŠΈμ›Œν¬λ₯Ό 톡해 λ‹€λ₯Έ ν˜ΈμŠ€νŠΈμ— λ‘œκ·ΈμΈν•  수 μžˆλ„λ‘ μœ λ‹‰μŠ€κ°™μ€ 컴퓨터 운영 체제λ₯Όμœ„ν•œ μ†Œν”„νŠΈμ›¨μ–΄ μœ ν‹Έλ¦¬ν‹°μ΄λ‹€.
    • rexec : μ§€μ •ν•œ 원격 ν˜ΈμŠ€νŠΈμ— μ‹€ν–‰ν•  λͺ…령을 μž…λ ₯ν•˜μ—¬, 둜컬 μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰ν•œ λͺ…λ Ήμ˜ κ²°κ³Όλ₯Ό λ³Ό 수 μžˆλŠ” λͺ…λ Ήμ–΄
    • telnet : μΈν„°λ„·μ΄λ‚˜ 둜콜 μ˜μ—­ λ„€νŠΈμ›Œν¬ 연결에 μ“°μ΄λŠ” λ„€νŠΈμ›Œν¬ ν”„λ‘œν† μ½œ
    • ftp(File Transfer Protocol) : TCP/IP ν”„λ‘œν† μ½œμ„ 가지고 μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄μ˜ 파일 전솑을 ν•˜κΈ° μœ„ν•œ ν”„λ‘œν† μ½œ
  • IP spoofing (IPμŠ€ν‘Έν•‘, 아이피 μœ„/λ³€μ‘° 기법쀑 ν•˜λ‚˜)을 λ°©μ§€ν•˜κΈ° μœ„ν•œ κΈ°λŠ₯을 제곡.
  • X11 νŒ¨ν‚· ν¬μ›Œλ”© 및 일반적인 TCP/IP νŒ¨ν‚· ν¬μ›Œλ”©μ„ 제곡
    • X11 ν¬μ›Œλ”© μ΄μš©ν•˜λ©΄ λ³΅μž‘ν•œ 포트 ν¬μ›Œλ”© μ„€μ • 없이 μ›κ²©μ˜ X11 μ‘μš© ν”„λ‘œκ·Έλž¨λ“€μ„ μ•ˆμ „ν•œ μ•”ν˜Έν™” 터널을 톡해 μ‚¬μš©μž PCμ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 

SSH Key (SSH ν‚€)

μ„œλ²„μ— 접속할 λ•Œ λΉ„λ°€λ²ˆν˜Έλ‚˜ 호슀트 인증방식 λŒ€μ‹  Keyλ₯Ό μ œμΆœν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. λΉ„λ°€λ²ˆν˜Έλ³΄λ‹€ 높은 μˆ˜μ€€μ˜ λ³΄μ•ˆ μš”κ±΄μ„ ν•„μš”λ‘œ ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

SSH ν‚€(Key)λŠ” κ³΅κ°œν‚€(public key)와 λΉ„κ³΅κ°œν‚€(private key)둜 μ΄λ£¨μ–΄μ§€λŠ”λ° 이 λ‘κ°œμ˜ 관계λ₯Ό μ΄ν•΄ν•˜λŠ” 것이 SSH Keyλ₯Ό μ΄ν•΄ν•˜λŠ”λ° ν•΅μ‹¬μž…λ‹ˆλ‹€. ν‚€λ₯Ό μƒμ„±ν•˜λ©΄ κ³΅κ°œν‚€μ™€ λΉ„κ³΅κ°œν‚€κ°€ λ§Œλ“€μ–΄μ§‘λ‹ˆλ‹€. 이 쀑에 λΉ„κ³΅κ°œν‚€λŠ” μ„œλ²„μ— μœ„μΉ˜ν•΄μ•Ό ν•˜κ³ , κ³΅κ°œν‚€λŠ” ν΄λΌμ΄μ–ΈνŠΈμ— μœ„μΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. SSH 접속을 μ‹œλ„ν•˜λ©΄ SSH Clientκ°€ 둜컬 λ¨Έμ‹ μ˜ λΉ„κ³΅κ°œν‚€μ™€ 원격 λ¨Έμ‹ μ˜ κ³΅κ°œν‚€λ₯Ό λΉ„κ΅ν•΄μ„œ λ‘˜μ΄ μΌμΉ˜ν•˜λŠ”μ§€λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.

SSH Key 정리

  • SSH ν‚€λŠ” κ³΅κ°œν‚€ λΉ„κ³΅κ°œν‚€λ‘œ 이루어짐 (λ‘κ°œκ°€ ν•œ 쌍, ν‚€νŽ˜μ–΄ 라고 뢀름)
  • κ³΅κ°œν‚€λŠ” μ ‘μ†ν•˜κ³ μž ν•˜λŠ” μ„œλ²„μ— 전달, λΉ„κ³΅κ°œν‚€λŠ” 원격 접속을 μ‹œλ„ν•˜λŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ 가지고 μžˆμŠ΅λ‹ˆλ‹€.
  • ν΄λΌμ΄μ–ΈνŠΈκ°€ κ³΅κ°œν‚€λ‘œ μ„œλ²„μ— SSH 접속을 μ‹œλ„ν•˜λ©΄ κ³΅κ°œν‚€μ™€ λΉ„κ³΅κ°œν‚€λ‘œ 인증을 거친 ν›„ 인증이 μ™„λ£Œλ˜λ©΄ 접속이 κ°€λŠ₯ν•©λ‹ˆλ‹€.
κ³΅κ°œν‚€ 인증을 μœ„ν•œ ν‚€ νŽ˜μ–΄λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄ μ•„λž˜μ˜ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
ssh-keygen - 곡개 ν‚€ 인증을 μœ„ν•œ ν‚€ 쌍 생성

ex) ssh-keygen -t rsa
-> rsaλŠ” μ•”ν˜Έν™” 방식을 μ˜λ―Έν•©λ‹ˆλ‹€.

2. SFTP (SSH File Transfer Protocol)

SFTPλž€?

λ„€νŠΈμ›Œν¬λ₯Ό ν†΅ν•œ 파일 전솑을 ν—ˆμš©ν•˜λŠ” SSH ν”„λ‘œν† μ½œμ˜ ν™•μž₯이라고 ν•©λ‹ˆλ‹€.

기쑴의 FTP (File Transfer Protocol) 방식은 λ³΄μ•ˆμ μΈ 취약점이 μžˆκΈ°λ•Œλ¬Έμ— μ€‘μš”ν•œ νŒŒμΌμ„ μ „μ†‘ν•˜κΈ°λŠ” μœ„ν—˜ν–ˆμŠ΅λ‹ˆλ‹€. 파일 전솑 μ‹œ SSH 방식을 μ‚¬μš©ν•΄μ„œ μ•ˆμ „ν•˜κ²Œ μ•”ν˜Έν™”λœ κ΅¬κ°„μ—μ„œ νŒŒμΌμ„ 전솑할 수 μžˆλ„λ‘ κ΅¬ν˜„ν•œ 것이 SFTP μž…λ‹ˆλ‹€.

SFTP 의 μž₯점

  • SFTPλŠ” ν•˜λ‚˜μ˜ μ—°κ²°λ§Œ ν•„μš”ν•˜λ©° 데이터 연결이 ν•„μš”μ—†μŠ΅λ‹ˆλ‹€.
  • 연결이 μ•ˆμ „ν•˜κ²Œ λ³΄ν˜Έλ©λ‹ˆλ‹€. (SSH 방식)
  • SFTPλŠ” 기계가 읽을 수 있고 κ· μΌν•œ 디렉터리 λͺ©λ‘μ„ μžλž‘ν•©λ‹ˆλ‹€.
  • ν”„λ‘œν† μ½œμ—μ„œ μ œκ³΅ν•˜λŠ” μΆ”κ°€ κΈ°λŠ₯μ—λŠ” 파일 잠금, νŠΉμ„± μ‘°μž‘, κΆŒν•œ μž‘μ—… 및 ν–₯μƒλœ κΈ°λŠ₯이 ν¬ν•¨λ©λ‹ˆλ‹€.

SFTP 의 단점

  • SSH ν‚€μ˜ μœ νš¨μ„± 검사 및 관리가 λ³΅μž‘ν•˜λ‹€
  • 이 ν”„λ‘œν† μ½œμ€ λ°”μ΄λ„ˆλ¦¬ 톡신에 κ΄€μ—¬ν•˜λŠ”λ°, μ΄λŠ” μ‚¬λžŒμ΄ 읽을 λ•Œ "μžˆλŠ” κ·ΈλŒ€λ‘œ" 기둝할 수 μ—†λ‹€λŠ”κ±Έ λ§ν•©λ‹ˆλ‹€.
  • SFTP ꡬ성 "ν‘œμ€€"은 μ„œλ‘œ λ‹€λ₯Έ κ³΅κΈ‰μ—…μ²΄μ˜ μ†Œν”„νŠΈμ›¨μ–΄ 타이틀 κ°„ ν˜Έν™˜μ„± 문제λ₯Ό μ•ΌκΈ°ν•  수 λ§Žμ€ SFTP ꡬ성 ν‘œμ€€μ΄ μžˆμŠ΅λ‹ˆλ‹€.
  • SFTPλŠ” μ„œλ²„ λŒ€ μ„œλ²„ 볡사 외에 μž¬κ·€ 디렉터리에 λŒ€ν•œ 제거 μž‘μ—…μ„ μ œκ³΅ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

SCP vs SFTP

  SCP SFTP
κΈ°λŠ₯ 파일 μ „μ†‘λ§Œ ν—ˆμš©ν•˜λŠ” κ°„λ‹¨ν•œ ν”„λ‘œν† μ½œ 원격 파일 관리λ₯Ό μœ„ν•œ κ΄‘λ²”μœ„ν•œ μž‘μ—…μ„ 제곡
μ›κ²©μœΌλ‘œ 파일 제거, 쀑단 된 전솑 재개 λ“±μ˜ μΆ”κ°€κΈ°λŠ₯을 가짐
ν”Œλž«νΌ λŒ€λΆ€λΆ„ Unix ν”Œλž«νΌλ§Œ μ‚¬μš©ν•¨ μ—¬λŸ¬ ν”Œλž«νΌμ—μ„œ μ‚¬μš©ν•  수 있음
속도 SFTP 보닀 λΉ λ₯΄λ‹€ νŒ¨ν‚·μ˜ μ•”ν˜Έν™” 및 일치λ₯Ό κΈ°λ‹€λ €μ•Ό ν•˜λ―€λ‘œ SCP보닀 느림
파일 전솑 μš©λŸ‰ 4GB μ΄μƒμ˜ 파일 전솑 λΆˆκ°€ 4GB μ΄μƒμ˜ νŒŒμΌλ„ 전솑가λŠ₯ (λŒ€μš©λŸ‰ 전솑이 κ°€λŠ₯)
μ„Έμ…˜ μœ μ§€ 파일 전솑 μ·¨μ†Œμ‹œ μ„Έμ…˜μ„ μ·¨μ†Œν•΄μ•Όν•¨ 파일 전솑 μ·¨μ†Œμ‹œ μ„Έμ…˜μ„ μœ μ§€ν•  수 있음
전솑 재개 κ°€λŠ₯ 전솑 재개 λΆˆκ°€λŠ₯ 전솑 재개 κ°€λŠ₯

μ°Έκ³ 

λ°˜μ‘ν˜•