블로그 이름

[SFTP] Window Server 2016에서 SFTP 서버 구축하기 본문

개발/기타

[SFTP] Window Server 2016에서 SFTP 서버 구축하기

Hide 2024. 5. 20. 12:41

윈도우 서버 2016에서 SFTP 서버 구축하는 방법

 

1. OpenSSH 다운로드 및 설치
OpenSSH 패키지 다운로드:

GitHub OpenSSH for Windows 릴리스 페이지로 이동합니다.
최신 릴리스를 찾아 OpenSSH-Win64.zip 파일을 다운로드합니다.

 

압축 해제 및 설치:

다운로드한 OpenSSH-Win64.zip 파일의 압축을 해제합니다. 예를 들어, C:\Program Files\OpenSSH 디렉토리에 압축을 해제합니다.
관리자 권한으로 PowerShell을 엽니다.
OpenSSH 설치 스크립트 실행:

https://github.com/PowerShell/Win32-OpenSSH/releases

 

Releases · PowerShell/Win32-OpenSSH

Win32 port of OpenSSH. Contribute to PowerShell/Win32-OpenSSH development by creating an account on GitHub.

github.com

에서 최신 OpenSSH-Win64.zip 을 다운받는다

 




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


sshd 및 ssh-agent 서비스 시작 및 설정:
powershell
Start-Service sshd
Start-Service ssh-agent
Set-Service -Name sshd -StartupType 'Automatic'
Set-Service -Name ssh-agent -StartupType 'Automatic'


방화벽 규칙 추가:
powershell
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

 


2. 사용자 설정


홈 디렉토리 생성 및 권한 설정:
예를 들어, C:\SFTP\username 폴더를 생성합니다.
해당 폴더에 사용자에게 읽기/쓰기 권한을 부여합니다.
powershell
New-Item -ItemType Directory -Path "C:\SFTP\username"
icacls "C:\SFTP\username" /grant username:F


3. SFTP 서버 설정 테스트


SFTP 클라이언트 사용:
WinSCP, FileZilla 또는 다른 SFTP 클라이언트를 사용하여 서버에 접속할 수 있는지 테스트합니다.
서버 주소: 서버의 IP 주소 또는 도메인 이름
포트: 22
사용자 이름: Windows 사용자 계정
비밀번호: 해당 사용자 계정의 비밀번호


4. 추가 설정 (선택 사항)
사용자 제한 설정:
특정 사용자가 지정된 디렉토리 이외에는 접근하지 못하게 제한하려면 sshd_config 파일을 편집해야 합니다.


sshd_config 파일 편집:
C:\ProgramData\ssh\sshd_config 파일을 편집합니다.
파일의 끝에 다음 줄을 추가하여 사용자의 루트 디렉토리를 제한합니다:
perl
Match User username
    ChrootDirectory C:\SFTP\username
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no


sshd 서비스 다시 시작:
powershell
Restart-Service sshd


이 단계를 따르면 Windows Server 2016에서 OpenSSH 기반의 SFTP 서버를 성공적으로 구축할 수 있습니다. 추가적인 보안 설정이나 고급 구성은 필요에 따라 진행할 수 있습니다.