![]()
OpenSSH 다운로드 및 설치

OpenSSH는 SFTP 서버를 구현하기 위한 핵심 소프트웨어로, Windows Server 2016에서도 사용할 수 있습니다. 아래의 절차를 통해 OpenSSH를 다운로드하고 설치하는 방법을 안내드립니다.
- OpenSSH 패키지 다운로드
OpenSSH의 최신 릴리스를 다운로드하기 위해 GitHub의 OpenSSH for Windows 릴리스 페이지에 접속합니다. 해당 페이지에서 최신 버전의 OpenSSH-Win64.zip 파일을 찾고 다운로드합니다.
- 압축 해제 및 설치
다운로드한 OpenSSH-Win64.zip 파일의 압축을 해제합니다. 예를 들어, C:\Program Files\OpenSSH 디렉토리에 압축을 해제합니다.
powershell
cd 'C:\Program Files\OpenSSH'
.\install-sshd.ps1
- sshd 및 ssh-agent 서비스 시작 및 설정
OpenSSH 설치가 완료되면, sshd(SSH Daemon)와 ssh-agent 서비스를 시작하고 자동으로 실행되도록 설정해야 합니다. 아래의 명령어를 PowerShell에 입력합니다.
powershell
Start-Service sshd
Start-Service ssh-agent
Set-Service -Name sshd -StartupType 'Automatic'
Set-Service -Name ssh-agent -StartupType 'Automatic'
- 방화벽 규칙 추가
SFTP 서버에 접근할 수 있도록 방화벽 규칙을 추가해야 합니다. 아래의 명령어를 통해 TCP 포트 22에 대한 인바운드 규칙을 생성합니다.
powershell
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
이 과정을 통해 OpenSSH를 성공적으로 설치하고, SFTP 서버가 기본적으로 작동할 수 있는 환경을 마련하게 됩니다.
| 단계 | 설명 |
|---|---|
| 1 | OpenSSH 패키지 다운로드 |
| 2 | 압축 해제 및 설치 |
| 3 | sshd 및 ssh-agent 서비스 시작 |
| 4 | 방화벽 규칙 추가 |
사용자 설정

SFTP 서버를 운영하기 위해서는 사용자 계정을 설정하고, 파일에 접근할 수 있는 권한을 부여해야 합니다. 아래에 그 과정을 상세히 설명하겠습니다.
- 홈 디렉토리 생성
각 사용자마다 파일을 저장할 홈 디렉토리를 생성해야 합니다. 예를 들어, 사용자의 이름이 username이라면 C:\SFTP\username 폴더를 생성합니다.
powershell
New-Item -ItemType Directory -Path "C:\SFTP\username"
- 권한 설정
생성한 홈 디렉토리에 대해 해당 사용자에게 읽기 및 쓰기 권한을 부여해야 합니다. 아래의 명령어를 통해 권한을 설정합니다.
powershell
icacls "C:\SFTP\username" /grant username:F
이 단계에서 username은 실제 사용자 계정으로 바꾸어 입력해야 합니다.
- 사용자 계정 생성
SFTP를 이용할 사용자를 추가하기 위해 Windows 사용자 계정을 생성해야 합니다. PowerShell에서 다음 명령어를 입력하여 사용자 계정을 추가합니다.
powershell
New-LocalUser "username" -Password (ConvertTo-SecureString "비밀번호" -AsPlainText -Force) -FullName "사용자 이름" -Description "SFTP 사용자"
비밀번호와 사용자 이름은 필요에 따라 변경하실 수 있습니다.
- 사용자 그룹 설정
SFTP 서버에 접속할 수 있는 사용자 그룹을 설정할 수 있습니다. 이를 통해 여러 사용자를 관리하고 효율적으로 권한을 부여할 수 있습니다.
필요에 따라 그룹을 생성하고 사용자를 추가해주시면 됩니다.| 단계 | 설명 |
|---|---|
| 1 | 홈 디렉토리 생성 |
| 2 | 권한 설정 |
| 3 | 사용자 계정 생성 |
| 4 | 사용자 그룹 설정 |
SFTP 서버 설정 테스트

SFTP 서버가 정상적으로 작동하는지 확인하기 위해 실제 클라이언트를 사용하여 테스트를 진행해야 합니다. 아래에 그 과정을 설명하겠습니다.
- SFTP 클라이언트 설치
WinSCP, FileZilla 등과 같은 SFTP 클라이언트를 설치합니다. 이러한 프로그램은 사용자 인터페이스가 직관적이어서 쉽게 사용할 수 있습니다.
- 서버 접속 설정
SFTP 클라이언트를 실행한 후, 아래의 정보로 서버에 접속할 수 있도록 설정합니다.
- 서버 주소: 서버의 IP 주소 또는 도메인 이름
- 포트: 22
- 사용자 이름: Windows 사용자 계정 이름
비밀번호: 해당 사용자 계정의 비밀번호
연결 테스트
설정이 완료되면 "연결" 버튼을 클릭하여 SFTP 서버에 접속을 시도합니다. 만약 정상적으로 연결된다면, 서버가 올바르게 설정된 것입니다.
파일을 업로드하거나 다운로드하여 추가적으로 테스트를 진행할 수 있습니다.- 문제 해결
연결이 실패하는 경우, 방화벽 설정이나 SSH 서비스가 정상적으로 작동하는지 확인해 보아야 합니다. sshd 서비스가 실행되고 있는지 PowerShell에서 다음 명령어로 확인할 수 있습니다.
powershell
Get-Service -Name sshd
| 단계 | 설명 |
|---|---|
| 1 | SFTP 클라이언트 설치 |
| 2 | 서버 접속 설정 |
| 3 | 연결 테스트 |
| 4 | 문제 해결 |
추가 설정 (선택 사항)
SFTP 서버를 운영하면서 특정 사용자에게 더 강력한 보안 정책을 적용하고 싶다면, 추가적인 설정이 필요합니다. 이는 사용자의 접근 제한을 포함합니다.
- sshd_config 파일 편집
사용자별로 특정 디렉토리 외에는 접근하지 못하게 하려면 sshd_config 파일을 수정해야 합니다. 이 파일은 일반적으로 C:\ProgramData\ssh\sshd_config에 위치해 있습니다.
- 루트 디렉토리 제한 설정
파일의 끝에 아래와 같은 줄을 추가하여 특정 사용자의 루트 디렉토리를 제한합니다.
plaintext
Match User username
ChrootDirectory C:\SFTP\username
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
여기서 username은 해당 사용자의 이름으로 바꾸어 입력해야 합니다.
- sshd 서비스 다시 시작
sshd_config 파일을 수정한 후에는 sshd 서비스를 다시 시작해야 변경 사항이 적용됩니다. PowerShell에서 다음 명령어를 입력합니다.
powershell
Restart-Service sshd
- 보안 설정 강화
추가적으로, SFTP 서버의 보안을 강화하기 위해 비밀번호 정책을 설정하거나 공개 키 인증 방식을 사용하는 것도 좋은 방법입니다. 이를 통해 해킹 위험을 줄이고 사용자 신뢰성을 높일 수 있습니다.
| 단계 | 설명 |
|---|---|
| 1 | sshd_config 파일 편집 |
| 2 | 루트 디렉토리 제한 설정 |
| 3 | sshd 서비스 다시 시작 |
| 4 | 보안 설정 강화 |
결론
Windows Server 2016에서 SFTP 서버를 설정하는 과정은 여러 단계를 통해 이루어지며, OpenSSH를 활용하여 안정적인 파일 전송 환경을 구축할 수 있습니다. 위의 절차를 따라 SFTP 서버를 설치하고 설정한 후, 필요한 경우 추가적인 보안 설정을 통해 시스템을 더욱 안전하게 운영할 수 있습니다.
SFTP 서버의 성공적인 구축은 효율적인 파일 관리와 보안 강화에 크게 기여할 것입니다.