Windows에서 sshd, sftp-server의 실행 환경 구축

개요


이것은 Windows 10에서 sshd, sftp-server 실행 환경을 구축할 때의 노트입니다.
sshd, sftp-server는 마이크로소프트가 Windows를 위해 개발한 Win32-OpenSSH를 사용했다.
컨디션
  • Windows10 Professional
  • PowerShell 5.1
  • Win32-OpenSSH 0.0.0.6
  • 참고 자료
  • Installing SFTP/SSH Server on Windows using OpenSSH
  • Top 10: Windows Firewall Netsh Commands
  • SSH에서 사용할 포트 설정


    기본값은 포트 22이며 이 예에서는 포트 20022를 사용합니다.
    Windows 방화벽은 다음을 수행하여 포트 20022로 설정합니다.
    관리자 권한 시작 명령 프롬프트에서 다음 명령을 실행합니다.

    규칙 추가

    > netsh advfirewall firewall add rule name="sshd" dir=in action=allow protocol=TCP localport=20022 profile=private
    OK
    

    규칙적 확인

    > netsh advfirewall firewall show rule name="sshd"
    
    規則名:                               sshd
    ----------------------------------------------------------------------
    有効:                                 はい
    方向:                                 入力
    プロファイル:                         プライベート
    グループ:
    ローカル IP:                          任意
    リモート IP:                          任意
    プロトコル:                           TCP
    ローカル ポート:                      20022
    リモート ポート:                      任意
    エッジ トラバーサル:                  いいえ
    操作:                                 許可
    OK
    

    규칙의 유효성/무효화


    enable에서 지정한 값은 "yes": 유효화 "no": 무효화입니다.
    > netsh advfirewall firewall set rule group="sshd" new enable=(yes|no)
    
    또한 화면에서 조작할 때 '제어판 → 시스템 및 안전 → Windows 방화벽 → 화면 왼쪽 메뉴의 상세한 설정' 에서 왼쪽 메뉴의 '수신 규칙' 을 누르고 왼쪽 조작 메뉴에서 '새 규칙' 을 선택한 다음 왼쪽 조작 메뉴에서 '새 규칙' 을 선택합니다.를 선택합니다.
    그리고 새 수신 규칙 마법사에 따라 포트를 여는 규칙을 추가합니다.

    Tips


    포트 22를 여는 규칙의 추가 방법을 검색하면 PowerShell에서 아래 명령을 사용하는 설명을 자주 볼 수 있지만, 이 방법이 효과적인 것은 윈도 서버 2012, 윈도 8이다.Windows 7 또는 10에는 netsh 명령이 필요합니다.
    > New-NetFirewallRule -DisplayName "sshd" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
    

    Win32-OpenSSH


    OpenSSH-Win64.zip을 다운로드하여 적당한 위치로 펼치십시오.
    이 예에서는 확장된 디렉토리를 C:\OpenSSH-Win64에 구성하고 환경 변수 Path에 추가합니다.

    sshd_config 편집


    다음 설정을 변경합니다.
    #Port 22
    Port 20022
    
    #Subsystem  sftp    sftp-server.exe
    Subsystem   sftp    C:\OpenSSH-Win64\sftp-server.exe
    

    설치하다.


    이 디렉토리를 현재 디렉토리로 설정하고 관리자 권한으로 명령 프롬프트를 시작하고 다음 명령을 실행합니다.
    > powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
    [SC] SetServiceObjectSecurity SUCCESS
    [SC] ChangeServiceConfig SUCCESS
     Granting SeAssignPrimaryTokenPrivilege to NT SERVICE\SSHD   ... successful
    sshd and ssh-agent services successfully installed
    
    > ssh-keygen.exe -A
    ssh-keygen.exe: generating new host keys: RSA DSA ECDSA ED25519
    
    > powershell.exe -ExecutionPolicy Bypass -File install-sshlsa.ps1
    
    
    > ssh-keygen.exe -l -f ssh_host_rsa_key -E md5
    2048 MD5:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:** HOME-DEV-PC\rubytomato@home-dev-pc (RSA)
    
    일부는 마스크를 쓰고 있었다.
    여기서 PC를 다시 시작합니다.

    서비스 시작


    관리자 권한으로 명령 알림을 시작하고 net 명령으로 sshd 서비스를 시작합니다.
    sshd 서비스가 시작되면 sftp-server도 사용할 수 있습니다.
    > net start sshd
    
    sshd サービスは正常に開始されました。
    

    서비스의 정지

    > net stop sshd
    
    sshd サービスは正常に停止されました。
    

    클라이언트 설정


    인증 키 파일 만들기


    sftp 서버에 사용할 인증 키 파일을 만듭니다.
    이 예에서 PuTTY의 PUTTYGET.EXE를 사용하여 암호문이 없는 개인 키 파일과 공개 키 파일을 만듭니다.
  • 공공 키 파일: "sftp rsa.pub"
  • 기밀 키 파일: "sftp rsa.ppk"
  • 공개 키 파일에서 삭제키스 파일, C:\Users\USERNAME 만들기ssh에 설정합니다.
    > ssh-keygen -i -f sftp_rsa.pub >> authorized_keys
    

    WinSCP 설정


    WinSCP를 시작하여 로그인 화면에서 "새 사이트"를 클릭하여 설정을 추가합니다.
    사용자 이름 에 Windows 계정의 사용자 이름을 입력합니다.

    원격 디렉토리를 지정합니다.(안 해도 돼.)

    개인 키 PUTTYGET.EXE에서 만든 키 파일을 지정합니다.

    좋은 웹페이지 즐겨찾기