Windows에서 SFTP 서버 설정

Olorunfemi Akinlua 2023년6월21일
  1. 이전 Windows용 SFTP 서버 설정
  2. 최신 Windows용 SFTP 서버 설정
  3. WinSCP를 사용하여 SFTP 클라이언트 설정 및 구성
Windows에서 SFTP 서버 설정

SFTP 서버를 사용하면 보안 네트워크 프로토콜인 SSH 파일 전송 프로토콜을 통해 파일과 콘텐츠에 액세스할 수 있습니다. OS 환경 내에서 SFTP 서버를 설정하여 리소스를 검색하고 보낼 수 있습니다.

이 기사에서는 WinSCP 소프트웨어를 사용하여 Windows에서 SFTP 서버를 설정하는 방법에 대해 설명합니다.

이전 Windows용 SFTP 서버 설정

Windows에서 SFTP 서버를 설정하려면 PowerShell GitHub에서 다운로드할 수 있는 OpenSSH를 설치해야 합니다. Linux용 설치 가이드 환경에서 확인하실 수 있습니다.

msi 또는 zip 파일을 다운로드할 수 있지만 이 문서에서는 msi 파일만 사용합니다.

  • msi 파일을 설치합니다. 그런 다음 서비스로 이동하여 OpenSSH 서버OpenSSH 인증 에이전트의 상태를 확인하십시오.

    자동 서비스

  • 상태시작 유형실행 중자동이 아니면 두 서비스를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.

    속성

  • 시작 유형자동으로 변경하고 시작을 클릭한 다음 확인을 선택합니다.

    시작 유형

  • OpenSSH 인증 에이전트에 대해 동일한 작업을 수행합니다. 이제 두 서비스 모두 실행 중자동이어야 합니다.

    OpenSSH 인증 에이전트

최신 Windows용 SFTP 서버 설정

  • 최신 Windows의 경우 설정 > 앱 > 선택적 기능으로 이동하여 OpenSSH를 얻을 수 있습니다.

    선택적 기능

  • 기능 보기를 선택하고 옵션 기능 추가 대화 상자에서 OpenSSH 서버를 검색합니다.

    선택 기능 추가

  • OpenSSH 서버 확인란 옵션을 선택하고 설치를 클릭합니다.

    OpenSSH 서버

  • 그런 다음 서버로 들어오는 연결을 허용하도록 아래 PowerShell 명령을 사용하여 SSH 서버를 구성합니다.
    New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -Program "C:\\Windows\\System32\\OpenSSH\\sshd.exe"
    
  • 구성이 끝나면 OpenSSH 서버 서비스를 시작하겠습니다. 이를 설정하려면 검색창에서 서비스를 검색해야 합니다.

    서비스 검색

  • Windows 서비스 목록에서 OpenSSH 서버를 찾으십시오.

    OpenSSH 서버 서비스

  • 서비스를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.

    속성

  • 시작 유형자동으로 변경하고 시작을 클릭한 다음 확인을 선택합니다.

    시작 유형

  • OpenSSH 인증 에이전트에 대해 동일한 작업을 수행합니다. 이제 두 서비스 모두 실행 중자동이어야 합니다.

    OpenSSH 인증 에이전트

WinSCP를 사용하여 SFTP 클라이언트 설정 및 구성

WinSCP는 무료로 사용하고 수정할 수 있는 GPL-3.0 전용 소프트웨어입니다. 이를 통해 SSH 파일 전송 및 Amazon S3를 비롯한 다양한 프로토콜에서 안전한 파일 전송을 수행할 수 있습니다.

Windows에서만 사용할 수 있으며 다운로드 페이지에서 다운로드할 수 있습니다.

  • 다운로드 후 설치 프로그램 파일을 실행하고 설치 모드를 선택하십시오.

    설치 모드 선택

  • 라이선스 계약에 동의하고 일반 설치 옵션을 선택합니다.

    일반 설치

  • 원하는 사용자 인터페이스 스타일을 선택하되 이 문서에서는 Commander를 사용합니다.

    커맨더

  • 그런 다음 설치를 클릭하고 WinSCP 애플리케이션을 시작합니다.

    설치

  • 시작하면 아래와 비슷한 화면이 표시됩니다.

    시작 화면

  • 호스트 이름을 입력하십시오. localhost를 사용하십시오. 기본 포트 번호 22를 사용하고 컴퓨터 이름과 암호를 입력합니다. 그런 다음 로그인 버튼을 클릭합니다.

    화면 채우기

  • 아래 화면 대화 상자가 나타나면 를 선택해야 합니다.

    화면 대화상자

  • 성공하면 아래 화면이 표시됩니다.

    성공

  • 성공하지 못한 경우 OpenSSH 서비스가 실행되고 있지 않기 때문에 아래와 같은 대화 상자가 표시될 수 있으며 앞서 언급한 두 OpenSSH 서비스를 시작해야 합니다.

    실패

  • 이제 ssh-keygen 명령을 사용하여 공개 키 기반 인증을 설정할 수 있습니다.
    ssh-keygen
    

    명령의 출력은 다음과 같습니다.

    Generating public/private rsa key pair.
    Enter file in which to save the key (C:\Users\akinl/.ssh/id_rsa):
    Created directory 'C:\Users\akinl/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in C:\Users\akinl/.ssh/id_rsa.
    Your public key has been saved in C:\Users\akinl/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:Ryrpy5HHTT1NK2OFzT3NjoIwORbzNV7/BfBfPLhHCEk akinl@Olorunfemi-PC
    The key's randomart image is:
    +---[RSA 3072]----+
    |        o .E=.o  |
    |         = +.Bo*.|
    |        * o oo*+O|
    |       o * o +o=*|
    |      o S + B.+.+|
    |     . + + . =.  |
    |      + o .      |
    |     . +         |
    |      o          |
    +----[SHA256]-----+
    

    ssh-keygen 도구가 암호를 요청할 때 암호를 입력할 수 있지만 이 문서에서는 암호를 사용하지 않습니다. ssh-keygen.ssh라는 숨겨진 디렉토리를 생성하고 .ssh 아래의 id_rsa.pub 파일 내에 키 쌍을 저장했습니다.

    공개 키 전체 경로는 C:\Users\akinl/.ssh/id_rsa.pub입니다.

    id_rsa

    공개 키는 id_rsa.pub 파일이고 개인 키는 id_rsa입니다.

  • 개인 및 공개 키를 WinSCP에 연결하려면 .ssh 폴더 내에 authorized_keys라는 파일을 생성해야 합니다. 공개 키 콘텐츠 id_rsa.pubauthorized_keys 파일에 복사하고 변경 사항을 저장합니다. 메모장과 같은 텍스트 편집기를 사용할 수 있습니다.

    authorized_keys

  • .ssh 디렉토리에는 최소한 3개의 파일(authorized_keys, id_rsaid_rsa.pub)이 있어야 합니다.

    SSH 디렉터리

  • authorized_keys 파일을 안전하게 유지하고 관리자 또는 핵심 사용자만 액세스할 수 있도록 하려면 액세스 제어 목록(ACL)을 구성해야 합니다. 아래 명령을 사용하여 액세스 제어를 구성합니다.
    icacls.exe "C:\Users\<username>\.ssh\authorized_keys" /inheritance:r /grant "Adminstrators:F" /grant "SYSTEM:F"
    
  • <사용자 이름>을 사용자 이름으로 변경합니다.
    icacls.exe "C:\Users\akinl\.ssh\authorized_keys" /inheritance:r /grant "Adminstrators:F" /grant "SYSTEM:F"
    

    명령의 출력:

    processed file: C:\Users\akinl\.ssh\authorized_keys
    Successfully processed 1 file; Failed processing 0 files
    
  • 따라서 이제 동일한 authorized_keys 파일을 열면 아래 대화 상자가 표시되어야 합니다.

    액세스 불가

  • SFTP 서버를 완전히 구성하려면 sshd_config 파일을 편집하여 공개 키 기반 인증을 설정해야 합니다. sshd_config 파일은 ProgramData 디렉토리에서 사용할 수 있습니다. 아래의 전체 경로를 Windows 탐색기에 복사하고 sshd_config 파일을 엽니다.
    C:\ProgramData\ssh
    

    sshd_config 파일은 디렉토리 내의 마지막 파일입니다.

    sshd_config

  • sshd_config 파일에서 구성 정보가 포함된 행의 주석을 제거하거나 변경하여 수정하십시오. 또한 관리자 권한으로 sshd_config 파일을 엽니다.
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    PasswordAuthentication no
    PermitEmptyPasswords no
    Subsystem sftp internal-sftp
    
    Match User <username>
    	X11Forwarding no
    	AllowTcpForwarding no
    	PermitTTY no
    	ForceCommand internal-sftp
    	PasswordAuthentication no
    

    또한 <사용자 이름>을 사용자 이름으로 변경해야 합니다. 또한 파일 내에서 다음 구성 정보에 대해 설명할 수 있습니다.

    Match Group administrators
    	   AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
    
  • ssh_config 파일에 대한 변경 사항은 아래 이미지와 같아야 합니다.

    ssh_config_edit

  • 이제 이전 사용자 이름과 암호 로그인 방법을 사용하여 WinSCP를 열어 보겠습니다.

    지원되는 인증 없음

    공개 키 인증만 지원하도록 구성 파일을 변경했기 때문에 더 이상 지원되지 않습니다. 지금 로그인하려면 공개 키를 사용해야 합니다.

  • 암호를 사용하는 대신 고급 버튼을 클릭하십시오.

    고급 버튼

  • SSH 아래의 인증 탭으로 이동합니다.

    인증

  • Authentication parameters 영역에서 개인 키 파일을 찾아 .ssh 디렉토리(C:\Users\akinl\.ssh)로 이동한 다음 파일 옵션을 All Files로 변경합니다.

    인증 매개변수

  • id_rsa 파일을 선택하면 아래 대화 상자가 나타납니다. 확인을 선택하십시오.

    확인

    그런 다음 아래 대화 상자가 표시됩니다.

    개인 키 변환됨

  • 그런 다음 확인을 클릭합니다.

    설정 저장

  • 이제 로그인을 클릭합니다.

    로그인

    이제 공개 키 인증을 사용하여 SFTP 서버에 액세스할 수 있습니다.

    SSH를 통한 액세스

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

관련 문장 - Python Server