Computer >> 컴퓨터 >  >> 체계 >> Windows Server

OpenSSH를 사용하여 Windows에 SFTP(SSH FTP) 서버 설치

Windows용 공식 OpenSSH 패키지를 사용하면 SFTP를 사용하여 클라이언트와 Windows 서버 간의 보안 파일 전송을 쉽게 구성할 수 있습니다. (보안 FTP ) 규약. 이 기사에서는 Win32-OpenSSH를 사용하여 Windows 10 또는 Windows Server 2016/2012 R2에서 SFTP 서버를 실행하는 방법을 보여줍니다.

내용:

  • SFTP란 무엇입니까?
  • Windows에서 SFTP 구현
  • Windows 10 1803+/Windows Server 2019에 Win32 OpenSSH 설치
  • Windows Server 2016/2012 R2에 Win32 OpenSSH 설치
  • WinSCP를 사용하여 SFTP 연결 테스트
  • Win32 OpenSSH를 제거하는 방법

SFTP란 무엇입니까?

SFTP (보안 파일 전송 프로토콜 , 보안 FTP 또는 SSH FTP )은 SSH 프로토콜의 확장으로 UNIX/Linux 시스템의 표준입니다. 사용자 관점에서 보면 FTP와 비슷하지만 사실 FTP와 공통점이 전혀 없는 완전히 다른 프로토콜입니다. SSH 터널(TCP 포트 22)을 통해 클라이언트와 서버 간에 데이터가 전송됩니다.

SFTP의 주요 장점:

  1. 파일 및 명령은 보안 SSH 세션 내에서 전송됩니다.
  2. 하나의 연결은 파일과 명령을 모두 보내는 데 사용됩니다.
  3. 심볼릭 링크, 인터럽트/재개 전송, 파일 삭제 기능 등이 지원됩니다.
  4. 일반적으로 FTP가 느리거나 실패한 채널에서는 SFTP 연결이 더 빠르고 안정적입니다.
  5. SSH 키를 사용하여 인증할 수 있습니다.
SFTP와 FTPS 프로토콜을 혼동하지 마십시오. FTPS는 본질적으로 SSL 인증서가 있는 단순한 FTP이고 SFTP는 SSH 세션 내에서 FTP 데이터와 명령을 보내는 프로토콜입니다.

Windows에서 SFTP 구현

역사적으로 Windows 운영 체제는 보안 SFTP 서버를 실행하기 위한 기본 제공 도구를 제공하지 않습니다. 이러한 목적을 위해 Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch 등과 같은 오픈 소스 또는 독점 솔루션이 사용되었습니다. 그러나 몇 년 전에 Microsoft는 Win32용 OpenSSH 포트 버전을 출시했습니다. 이 프로젝트의 이름은 Win32-OpenSSH입니다. .

Win32 OpenSSH를 사용하여 Windows 10 또는 Windows Server 2019/2016/2012 R2를 실행하는 SFTP 서버의 구성을 고려해 보겠습니다. 패키지.

Windows 10 1803+/Windows Server 2019에 Win32 OpenSSH 설치

Windows 10 빌드 1803 이상 및 Windows Server 2019에서 OpenSSH 패키지는 이미 RSAT와 같은 주문형 기능(FoD)의 형태로 운영 체제에 포함되어 있습니다.

다음 PowerShell cmdlet을 사용하여 Windows 10 및 Windows Server 2019에 OpenSSH 서버를 설치할 수 있습니다.

Add-WindowsCapability -Online -Name OpenSSH.Server*

또는 DISM 사용:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

또한 Windows 10 GUI(설정 -> -> 선택적 기능 -> 기능 추가 -> SSH 서버 열기 -> 설치 ).

OpenSSH를 사용하여 Windows에 SFTP(SSH FTP) 서버 설치

  • OpenSSH 실행 파일은 c:\windows\system32\OpenSSH\ 디렉터리에 있습니다.;
  • sshd_config 구성 파일은 C:\ProgramData\ssh 디렉터리에 있습니다. (이 디렉토리는 sshd 서비스를 처음 시작한 후에 생성됨);
  • 로그 파일:c:\windows\system32\OpenSSH\logs\sshd.log;
  • authorized_keys 파일과 키는 %USERPROFILE%\.ssh\ 디렉토리에 저장됩니다. .

이제 Linux에서와 같이 SSH를 통해 Windows 10에 연결할 수 있습니다.

Windows Server 2016/2012 R2에 Win32 OpenSSH 설치

이전 버전의 Windows 10 및 Windows Server 2016/2012 R2에서는 GitHub(https://github.com/PowerShell/Win32-OpenSSH/releases)에서 OpenSSH를 다운로드하여 설치해야 합니다. Windows x64용 패키지 버전을 다운로드해야 합니다. OpenSSH-Win64.zip (3.5MB).

  1. 대상 디렉토리에 아카이브 압축을 풉니다:C:\OpenSSH-Win;
  2. 상승된 PowerShell cli를 시작하고 OpenSSH 폴더로 전환합니다. Cd C:\OpenSSH-Win
  3. OpenSSH 디렉토리의 경로를 Path 환경 변수에 추가합니다(시스템 속성 -> 고급 탭 -> 환경 변수 -> 경로 선택 및 편집 시스템 변수 -> OpenSSH 폴더 경로 추가); OpenSSH를 사용하여 Windows에 SFTP(SSH FTP) 서버 설치
  4. OpenSSH 서버 설치:.\install-sshd.ps1 (녹색 메시지는 "sshd 및 ssh-agent 서비스가 성공적으로 설치되었습니다 "); OpenSSH를 사용하여 Windows에 SFTP(SSH FTP) 서버 설치
  5. 서버용 SSH 키 생성(sshd 서비스 시작에 필요):
    ssh-keygen.exe –A ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519 OpenSSH를 사용하여 Windows에 SFTP(SSH FTP) 서버 설치
  6. SSHD 서비스에 대한 자동 시작을 활성화하고 다음 PowerShell 서비스 관리 명령을 사용하여 시작합니다.
    Set-Service -Name sshd -StartupType ‘Automatic’
    Start-Service sshd
  7. 컴퓨터 다시 시작:
    Restart-Computer
  8. PowerShell을 사용하여 들어오는 SSH 트래픽에 대해 Windows 방화벽에서 TCP 포트 22 열기: New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH OpenSSH를 사용하여 Windows에 SFTP(SSH FTP) 서버 설치 참고 . 이전 명령은 이전 데스크톱 Windows 버전에서 작동하지 않습니다. 이 경우 다른 명령이 사용됩니다. netsh advfirewall firewall add rule name='SSH Port' dir=in action=allow protocol=TCP localport=22
  9. 텍스트 편집기에서 SSHD 구성 파일(C:\ProgramData\SSH\sshd_config)을 엽니다. Subsystem sftp의 값을 찾아 확인합니다. 지령. sftp-server.exe 파일을 여기에 지정해야 합니다. OpenSSH를 사용하여 Windows에 SFTP(SSH FTP) 서버 설치
sshd_config 구성 파일에서 다음 매개변수를 추가로 구성할 수 있습니다.

AllowGroups corp\sftp_users # 이 도메인 그룹의 사용자에 대해서만 OpenSSH에 연결하도록 허용

AuthenticationMethods password # 비밀번호 인증 활성화(SSH 키는 사용할 수 없음)
ForceCommand internal-sftp
ChrootDirectory C:\inetpub\wwwroot\ftpfolder # SFTP 사용자를 위한 기본 디렉토리

WinSCP를 사용하여 SFTP 연결 테스트

SFTP 프로토콜을 이용하여 생성된 SSH 서버에 접속을 시도해보자. 이를 수행하려면 무료 WinSCP 를 사용하십시오. 클라이언트.

연결 구성 창에서 SFTP를 선택합니다. 파일 전송 프로토콜로 서버명과 연결에 사용되는 Windows 계정의 자격 증명을 지정합니다(키 인증도 구성 가능).

OpenSSH를 사용하여 Windows에 SFTP(SSH FTP) 서버 설치

처음 연결을 시도하면 로컬 캐시에 호스트 키가 없다는 다음과 같은 알림이 나타납니다.

OpenSSH를 사용하여 Windows에 SFTP(SSH FTP) 서버 설치

모든 것이 올바르게 구성되면 클라이언트는 SFTP 서버에 연결하고 사용자 홈 디렉터리(기본적으로 사용자 프로필이 있는 디렉터리)에 있는 파일 목록을 표시합니다.

친숙한 파일 관리자 인터페이스 사용(Total Commander와 같은 ), 서버와 클라이언트 간에 파일을 복사할 수 있습니다. 파일은 보안 SFTP를 사용하여 전송됩니다.

OpenSSH를 사용하여 Windows에 SFTP(SSH FTP) 서버 설치

Win32 OpenSSH를 제거하는 방법

시스템에서 Win32 OpenSSH를 올바르게 제거하려면:

  1. 상승된 PowerShell 세션 실행
  2. SSHD 서비스 중지:
    Stop-Service sshd
  3. sshd 서비스 제거:.\uninstall-sshlsa.ps1
    sshd successfully uninstalled
    ssh-agent successfully uninstalled