[SFTP]윈도우 OpenSSH 기반 SFTP 서버 구축 가이드 (폴더 격리 설정)

2026. 3. 3. 17:03·Network
반응형

윈도우 기본 기능을 활용하여 특정 사용자(test)가 지정된 루트 폴더(C:\bart_ftp)를 벗어나지 못하도록 격리(Chroot)하고, 본인 전용 폴더에만 안전하게 파일을 업로드할 수 있도록 구성하는 방법입니다.

1. 사용자 계정 생성 및 디렉터리 구조 설정

가장 먼저 SFTP 전용 계정을 생성하고, 요청하신 구조에 맞춰 폴더를 생성합니다.

  • 계정 생성: net user test ********** /add /y (패스워드는 보안 정책에 맞춰 설정)
  • 루트 폴더 생성: C:\bart_ftp (SFTP 서비스의 최상위 경로)
  • 사용자 폴더 생성: C:\bart_ftp\test (사용자가 실제 쓰기 권한을 가질 폴더)
  • 권한 부여 (PowerShell 관리자):
    • 루트 폴더(C:\bart_ftp)는 보안상 **관리자(Administrators)**만 쓰기 권한을 가져야 로그인이 허용됩니다.
    • 사용자 폴더(C:\bart_ftp\test)에는 test 계정이 파일을 올릴 수 있도록 수정(M) 권한을 부여합니다.
    PowerShell
     
    icacls "C:\bart_ftp\test" /grant "test:(OI)(CI)M"
    

2. OpenSSH 서버 설치 및 상태 확인

윈도우 시스템에 OpenSSH 서버가 정상적으로 설치되어 있는지 확인합니다.

  • 설치 상태 확인: Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*'
  • 주의: 상태가 InstallPending이라면 반드시 컴퓨터를 재부팅해야 설치가 마무리되고 설정 폴더가 생성됩니다.

3. sshd_config 핵심 설정 (사용자 격리)

C:\ProgramData\ssh\sshd_config 파일을 관리자 권한으로 열어 맨 아래에 다음 설정을 추가합니다. 이 설정이 test 사용자를 지정된 폴더에 가두는 역할을 합니다.

Plaintext
 
# test 사용자를 C:\bart_ftp 폴더에 격리
Match User test
    ChrootDirectory C:\bart_ftp
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
  • 핵심: ChrootDirectory 경로와 그 상위 폴더들에 일반 사용자의 쓰기 권한이 있으면 보안상 접속이 차단됩니다.

4. 서비스 적용 및 방화벽 설정

설정 변경 후 서비스를 재시작하고 외부 접속을 위해 포트를 개방합니다.

  • 서비스 재시작: Restart-Service sshd
  • 방화벽 허용 (22번 포트):
  • PowerShell
     
    New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
    

5. 접속 및 파일 업로드 테스트

터미널에서 아래 순서대로 테스트를 진행하여 정상 작동 여부를 확인합니다.

  1. 접속: sftp test@localhost
  2. 로그인: 설정한 패스워드(**********) 입력
  3. 폴더 이동: cd test (접속 직후의 / 경로는 쓰기가 제한되므로 본인 폴더로 이동해야 합니다.)
  4. 파일 업로드: put "C:\내파일\test.txt"

💡 문제 해결 팁 (FAQ)

  • Permission denied: 접속 후 바로 파일을 업로드하려 하면 발생합니다. 반드시 cd test 명령어로 본인 전용 폴더에 진입한 뒤 작업하세요.
  • Connection reset: 패스워드 입력 직후 튕긴다면 C:\bart_ftp 폴더의 소유자가 Administrators가 아니거나, 일반 유저에게 쓰기 권한이 부여되어 있는지 확인하세요.
반응형
저작자표시 비영리 (새창열림)

'Network' 카테고리의 다른 글

[Cloud]Oracle Cloud 무료 서버 만들고 SSH 접속까지  (1) 2026.03.26
[SFTP]OpenSSH 서비스 포트 변경 방법 (22번 → 사용자 지정 포트)  (0) 2026.03.04
[FTP]Win11(Pro) FileZilla Server 1.12.3 FTP 서버 구축 방법  (0) 2026.02.26
시놀로지(Synology) Hyper Backup, rsync, Drive 백업, Snapshot Replication의 주요 특징  (0) 2025.04.03
시놀로지(Synology) Hyper Backup(동기화)  (0) 2025.03.27
'Network' 카테고리의 다른 글
  • [Cloud]Oracle Cloud 무료 서버 만들고 SSH 접속까지
  • [SFTP]OpenSSH 서비스 포트 변경 방법 (22번 → 사용자 지정 포트)
  • [FTP]Win11(Pro) FileZilla Server 1.12.3 FTP 서버 구축 방법
  • 시놀로지(Synology) Hyper Backup, rsync, Drive 백업, Snapshot Replication의 주요 특징
애플자라
애플자라
    반응형
  • 애플자라
    애플자라
    애플자라
  • 전체
    오늘
    어제
    • 분류 전체보기 (677)
      • 업무효율화★ (7)
      • Linux (93)
      • Programing (97)
      • Flex, Laszlo (15)
      • Database (170)
      • Network (19)
      • Data (14)
      • Tips (122)
      • 여행★ (1)
      • Board (116)
      • 맛집탐방 (3)
      • 아이원츄 (12)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • Love&Smile
    • Husk's repository
    • StartUp
    • DSDSTUDIO Experimentals
    • 신선
    • DEV.SEULKI.KR[이슬기]
    • Live Bit Block
  • 공지사항

  • 인기 글

  • 태그

    날짜
    delete
    엑셀
    sql
    MySQL
    select
    Oracle
    eclipse
    Excel
    table
    java
    tomcat
    Windows
    오라클
    테이블
    apache
    리눅스
    서버
    mssql
    설정
    Toad
    DATABASE
    데이터
    IP
    파일
    server
    백업
    Linux
    DB
    윈도우
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
애플자라
[SFTP]윈도우 OpenSSH 기반 SFTP 서버 구축 가이드 (폴더 격리 설정)
상단으로

티스토리툴바