Windows Server 2016에서 SFTP 서버 설정하기

2025-10-14 · 분류없는-이야기 · 읽는데 11분

Windows Server 2016에서 SFTP 서버 설정하기
Windows Server 2016에서 SFTP 서버를 구축하는 것은 안전하고 효율적인 파일 전송을 위한 좋은 방법입니다. SFTP(Secure File Transfer Protocol)는 SSH(Secure Shell) 프로토콜을 기반으로 하여 파일을 안전하게 전송할 수 있는 방법을 제공합니다.

이 글에서는 Windows Server 2016에서 OpenSSH를 이용해 SFTP 서버를 설정하는 방법을 단계별로 자세히 설명하겠습니다.

썸네일

OpenSSH 다운로드 및 설치

SFTP 서버 설정

SFTP 서버를 구축하기 위해서는 먼저 OpenSSH를 다운로드하고 설치해야 합니다. OpenSSH는 Windows 환경에서도 사용할 수 있도록 개발된 포트입니다.

아래의 절차를 따라 설치를 진행해 주시기 바랍니다.

OpenSSH 패키지 다운로드

  1. GitHub OpenSSH for Windows 릴리스 페이지로 이동: 최신 버전의 OpenSSH를 다운로드하기 위해 GitHub의 OpenSSH for Windows 릴리스 페이지에 방문합니다.
  2. 최신 릴리스 찾기: 페이지에서 최신 릴리스를 찾아 "OpenSSH-Win64.zip" 파일을 다운로드합니다.
작업 설명
다운로드 링크 OpenSSH GitHub Releases
파일 이름 OpenSSH-Win64.zip

압축 해제 및 설치

  1. 압축 해제: 다운로드한 "OpenSSH-Win64.zip" 파일의 압축을 해제합니다. 예를 들어, C:\Program Files\OpenSSH 디렉토리에 압축을 해제할 수 있습니다.
  2. PowerShell 실행: 관리자 권한으로 PowerShell을 실행합니다.
  3. OpenSSH 설치 스크립트 실행: PowerShell에서 다음 명령어를 입력하여 OpenSSH를 설치합니다.

powershell cd 'C:\Program Files\OpenSSH' .\install-sshd.ps1

서비스 시작 및 설정

OpenSSH가 설치되면, sshd 서비스와 ssh-agent 서비스를 시작하고 이들의 시작 유형을 자동으로 설정해야 합니다.

powershell Start-Service sshd Start-Service ssh-agent Set-Service -Name sshd -StartupType 'Automatic' Set-Service -Name ssh-agent -StartupType 'Automatic'

방화벽 규칙 추가

SFTP 서버가 외부에서 접근 가능하도록 방화벽 규칙을 추가해야 합니다. 다음 명령어를 PowerShell에 입력해 주세요.

powershell New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

이렇게 하면 Windows Server 2016에서 OpenSSH 기반의 SFTP 서버를 위한 기본적인 설치가 완료됩니다.

사용자 설정

OpenSSH 다운로드

SFTP 서버를 활용하기 위해서는 사용자 계정을 설정하고 해당 계정의 홈 디렉토리를 생성해야 합니다. 이 과정은 사용자가 SFTP를 통해 파일을 전송할 수 있는 공간을 제공하는 중요한 단계입니다.

홈 디렉토리 생성

  1. 사용자 디렉토리 생성: 예를 들어, C:\SFTP\username이라는 디렉토리를 생성합니다.
  2. PowerShell 명령어 입력: 다음 명령어를 통해 디렉토리를 생성합니다.

powershell New-Item -ItemType Directory -Path "C:\SFTP\username"

  1. 권한 설정: 생성한 디렉토리에 사용자에게 읽기 및 쓰기 권한을 부여합니다. 다음 명령어를 사용하여 권한을 설정합니다.

powershell icacls "C:\SFTP\username" /grant username:F

작업 설명
사용자 디렉토리 생성 C:\SFTP\username
권한 부여 사용자에게 읽기/쓰기 권한 부여

이렇게 사용자 디렉토리를 생성하고 권한을 설정하면, 사용자는 해당 폴더에 접근하여 파일을 업로드하거나 다운로드할 수 있게 됩니다.

다른 내용도 보러가기 #1

SFTP 서버 설정 테스트

PowerShell 실행

SFTP 서버가 정상적으로 작동하는지 테스트하기 위해 SFTP 클라이언트를 사용할 수 있습니다. WinSCP, FileZilla와 같은 여러 클라이언트 프로그램이 있으며, 이들 중 하나를 선택하여 테스트를 진행하면 됩니다.

SFTP 클라이언트 사용

  1. 클라이언트 다운로드: WinSCP 또는 FileZilla와 같은 SFTP 클라이언트를 다운로드하여 설치합니다.
  2. 서버 주소 입력: SFTP 클라이언트에서 서버의 IP 주소나 도메인 이름을 입력합니다.
  3. 포트 번호 입력: 기본적으로 SFTP는 포트 22를 사용합니다.
  4. 사용자 이름 및 비밀번호 입력: Windows 사용자 계정의 사용자 이름과 비밀번호를 입력합니다.
작업 설명
클라이언트 프로그램 WinSCP, FileZilla
서버 주소 서버의 IP 주소 또는 도메인 이름
포트 번호 22

테스트가 완료되면, 성공적으로 서버에 연결되었는지 확인할 수 있습니다. 연결이 되면 파일을 업로드하거나 다운로드하여 기능이 정상적으로 작동하는지 점검합니다.

추가 설정 (선택 사항)

SFTP 서버의 보안을 강화하고 사용자 접근을 제한하기 위해 추가적인 설정을 진행할 수 있습니다. 특정 사용자가 지정된 디렉토리 이외에는 접근하지 못하도록 제한하려면 sshd_config 파일을 편집해야 합니다.

sshd_config 파일 편집

  1. sshd_config 파일 위치: C:\ProgramData\ssh\sshd_config 파일을 찾아 엽니다.
  2. 파일 편집: 파일의 끝에 다음 줄을 추가하여 사용자의 루트 디렉토리를 제한합니다.

plaintext Match User username ChrootDirectory C:\SFTP\username ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

이렇게 설정하면, 해당 사용자 계정은 지정된 디렉토리 이외의 다른 디렉토리에 접근할 수 없게 됩니다.

sshd 서비스 다시 시작

변경사항을 적용하기 위해서는 sshd 서비스를 다시 시작해야 합니다. PowerShell에서 다음 명령어를 입력하여 서비스를 재시작합니다.

powershell Restart-Service sshd

작업 설명
sshd_config 파일 위치 C:\ProgramData\ssh\sshd_config
서비스 재시작 PowerShell에서 Restart-Service sshd

이렇게 추가 설정을 진행하면 SFTP 서버의 보안을 한층 더 강화할 수 있습니다. 필요에 따라 추가적인 보안 설정이나 고급 구성을 진행하여 운영 환경에 맞게 조정할 수 있습니다.

결론

Windows Server 2016에서 SFTP 서버를 구축하는 과정은 생각보다 간단합니다. OpenSSH를 설치하고, 사용자 계정을 설정하며, SFTP 클라이언트를 통해 테스트를 진행하는 것만으로도 충분히 안전하고 효율적인 파일 전송 환경을 만들 수 있습니다.

추가적인 보안 설정을 통해 더욱 안전한 운영이 가능하니, 필요에 따라 적절한 설정을 진행해 보시기 바랍니다.

같이 보면 좋은 글