Windows에서 SFTP 서버 설정

7648 단어 windowssftpftp
Linux와 달리 Windows에는 SFTP 서버를 설정하기 위한 도구가 제공되지 않습니다. FTP 서버 설정에 가장 널리 사용되는 프로그램 중 하나인 FileZilla Server도 기본적으로 SFTP를 지원하지 않습니다. 그렇다면 Windows에서 SFTP를 설정하는 다른 방법이 있습니까? 물론이죠. OpenSSH는 서버에 대한 보안 연결을 설정하기 위한 프로그램 모음입니다. sftp-server는 OpenSSH에서 제공하는 유틸리티 프로그램 중 하나이므로 이 기사에서는 OpenSSH를 사용하여 Windows에서 SFTP 서버를 설정하는 방법을 안내합니다. 원래 OpenSSH는 Linux에서만 사용할 수 있었지만 Microsoft에서 Windows로 포팅했기 때문에 이제 here에서 zip 파일을 다운로드하여 OpenSSH를 사용할 수 있습니다.

OpenSSH의 zip 파일을 다운로드하면 PowerShell을 사용하여 설정을 완료할 수 있습니다. 다음 명령을 실행하기 전에 관리자 권한으로 PowerShell을 열어야 합니다.

먼저 파일의 압축을 풀어야 합니다. Windows용 OpenSSH를 다운로드했으면 다음 명령을 실행하여 압축을 풀 수 있습니다.

Expand-Archive -Path <String> `
  -DestinationPath 'C:\Program Files'


sshd 설치:

powershell.exe -ExecutionPolicy Bypass `
  -File 'C:\Program Files\OpenSSH-Win32\install-sshd.ps1'


새 SFTP 서버는 외부 요청을 수락해야 하므로 인바운드 연결을 허용하는 포트를 사용해야 합니다. 방화벽 규칙을 만들어야 합니다.

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' `
  -Enabled True -Direction Inbound `
  -Protocol TCP -Action Allow -LocalPort [port number]


모든 것이 준비되면 sshd를 시작할 수 있습니다.

Start-Service sshd


서버가 가동될 때마다 SFTP 서버가 시작되도록 하려면 다음 명령을 실행하십시오.

Set-Service -Name sshd -StartupType 'Automatic'


지금까지 SFTP 서버는 기본적으로 사용할 준비가 되었습니다. 그러나 사용하기 전에 일부 구성을 수행해야 할 수도 있습니다. sshd_config%programdata%\ssh라는 파일이 있으며 필요에 맞게 수정할 수 있습니다. 예를 들어 서버의 포트 번호를 변경하려면 다음과 같이 포트 번호가 있는 행의 주석을 제거하고 원하는 것으로 변경할 수 있습니다.

Port [port number]


루트 디렉토리를 변경하려면 루트 디렉토리 행의 주석을 제거하고 경로를 변경할 수 있습니다.

ChrootDirectory [path]


SFTP만 허용하려면 구성 파일에 다음 줄을 추가하면 됩니다.

ForceCommand internal-sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no


SFTP 서버가 필요하지 않은 경우 제거할 수 있습니다.

powershell.exe -ExecutionPolicy Bypass -File `
  'C:\Program Files\OpenSSH-Win32\uninstall-sshd.ps1'


문제 해결을 위해 아래 명령을 실행하여 최근 로그를 볼 수 있습니다.

Get-WinEvent -LogName OpenSSH/Operational `
 | Where-Object {$_.TimeCreated -ge (Get-Date).AddDays(-1)}


여전히 설정이 너무 어렵고 무거운 작업을 하고 싶지 않다면 시장에서 유료 도구를 사용할 수 있습니다. 그들은 더 멋진 그래픽 사용자 인터페이스로 동일한 작업을 수행할 수 있어야 합니다.

(보너스) SFTP 서버에 연결하기 위한 클라이언트 측 설정



자신의 개인 키와 공개 키를 생성하십시오.

 ssh-keygen -t ed25519 -C "{description}"


기본적으로 개인 키( id_ed25519 )와 공개 키( id_ed25519.pub )는 모두 %USERPROFILE%\.ssh\ 아래에 저장됩니다.

새로 생성된 비공개를 ssh-agent에 추가합니다.

Start-Service ssh-agent
ssh-add $env:userprofile\.ssh\id_ed25519


디렉터리authorized_keys%USERPROFILE%\.ssh\라는 파일을 생성하여 서버 측에서 SSH 공개 키를 설정하고 파일에 공개 키를 추가합니다.

SFTP 서버에 연결:

sftp -P [port number] [server name]


결론



OpenSSH는 대부분의 플랫폼에서 사용할 수 있으므로 설정은 서로 다른 플랫폼에서 거의 동일해야 합니다. 그러나 가장 까다로운 부분은 일부 구성이 모든 플랫폼에서 사용 가능하지 않을 수 있으므로 문제가 발생하면 설명서를 확인해야 한다는 것입니다.

참조



Win32-OpenSSH Wiki

좋은 웹페이지 즐겨찾기