블로그 이름

[SFTP] Window Server 2016에 OpenSSH 설치하기 본문

개발/기타

[SFTP] Window Server 2016에 OpenSSH 설치하기

Hide 2024. 6. 3. 14:46

1. OpenSSH 다운로드 및 설치
먼저 GitHub에서 OpenSSH를 다운로드하고 압축을 해제한 위치를 확인합니다.

2. OpenSSH 설치
압축을 해제한 폴더로 이동하여 PowerShell을 관리자로 실행합니다. 다음 명령어를 사용하여 OpenSSH를 설치합니다:

powershell
cd path\to\extracted\OpenSSH
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1


3. OpenSSH 서비스 시작 및 자동 시작 설정
OpenSSH 서버를 시작하고, 서버가 부팅될 때 자동으로 시작되도록 설정합니다.

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


4. 방화벽 설정
SSH 포트를 허용하도록 Windows 방화벽을 설정합니다. 기본적으로 SSH는 포트 22를 사용합니다.

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


5. SFTP 설정
SFTP 기능은 기본적으로 OpenSSH 서버에 포함되어 있습니다. 추가 설정 없이 SFTP를 사용할 수 있습니다. 기본적으로 OpenSSH 서버를 설치하고 시작한 후, 클라이언트에서 SFTP 접속을 시도할 수 있습니다.

shell
sftp username@your_server_ip


6. 사용자 디렉토리 설정
특정 사용자가 SFTP를 통해 접근할 수 있는 디렉토리를 설정하려면, sshd_config 파일을 수정합니다. sshd_config 파일은 보통 C:\ProgramData\ssh\sshd_config에 위치합니다. 해당 파일을 편집기(예: Notepad)로 엽니다.

powershell
notepad C:\ProgramData\ssh\sshd_config


파일의 끝에 다음 내용을 추가합니다:
Match User your_username
    ChrootDirectory C:\sftp\your_username
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
그리고 C:\sftp\your_username 디렉토리를 생성하고 적절한 권한을 설정합니다.

powershell
mkdir C:\sftp\your_username
icacls C:\sftp\your_username /grant "your_username:(OI)(CI)F"


7. SSH 서비스 재시작
sshd_config 파일을 수정한 후 SSH 서비스를 재시작하여 변경사항을 적용합니다.

powershell
Restart-Service sshd
이제 설정이 완료되었습니다. 설정한 대로 SFTP 접속이 가능한지 확인합니다.

문제 해결
접속 오류: 방화벽 설정을 다시 확인하고, sshd_config 파일에서 설정한 경로와 권한이 올바른지 확인합니다.
권한 문제: ChrootDirectory 설정 시 해당 디렉토리의 소유자와 권한이 올바른지 확인해야 합니다. 디렉토리의 소유자는 시스템 계정이어야 하며, 사용자에게는 읽기 권한만 부여되어야 합니다.


이 단계들을 따르면 Windows Server 2016에서 OpenSSH와 SFTP를 설정할 수 있습니다.