【玩轉Server 2019 】在Windows上使用OpenSSH安裝SFTP(SSH FTP)服務器

什麼是SFTP?

SFTP安全 文件傳輸協議安全FTPSSH FTP)是SSH協議的擴展,是UNIX / Linux系統中的標準。從用戶的角度來看,它與FTP類似,可是實際上,它是一個徹底不一樣的協議,與FTP沒有任何共同點數據經過SSH隧道(TCP端口22)在客戶端和服務器之間傳輸。git

SFTP的主要優勢:github

  1. 文件和命令在安全的SSH會話中傳輸;
  2. 一個鏈接用於發送文件和命令。
  3. 支持符號連接,中斷/恢復傳輸,文件刪除功能等;
  4. 一般,在FTP速度慢或出現故障的通道中,SFTP鏈接會更快,更可靠。
  5. 使用SSH密鑰進行身份驗證的可能性。Windows中的SFTP實施

從歷史上看,Windows操做系統不提供任何內置工具來運行安全的SFTP服務器。爲此,已經使用了開源或專有解決方案,例如Core FTP,FileZilla,CYGWIN,OpenSSH,FTP Shell,IPSwitch等。可是,幾年前,Microsoft爲Win32發佈了其版本的OpenSSH端口。該項目稱爲Win32-OpenSSHshell

讓咱們考慮使用Win32 OpenSSH程序包運行Windows 10或Windows Server 2019/2016/2012 R2的SFTP服務器的配置windows

  不要混淆SFTP和FTPS協議。 FTPS 本質上只是具備SSL證書的簡單FTP,而SFTP是在SSH會話內發送FTP數據和命令的協議。

 

 在Windows 10 1803 + / Windows Server 2019上安裝Win32 OpenSSH安全

在Windows 10 build 1803和更高版本中以及在Windows Server 2019中,OpenSSH軟件包已經以諸如RSAT之類的按需功能(FoD)的形式包含在操做系統中服務器

您可使用如下PowerShell cmdlet在Windows 10和Windows Server 2019上安裝OpenSSH服務器:ssh

Add-WindowsCapability -Online -Name OpenSSH.Server*編輯器

或使用DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0工具

您也能夠從Windows 10 GUI添加OpenSSH服務器(設置 -> 應用程序 -> 可選功能 -> 添加功能 -> 打開SSH服務器 -> 安裝)。ui

  • OpenSSH可執行文件位於如下目錄中:c:\windows\system32\OpenSSH\;
  • 所述的sshd_config配置文件位於的目錄:C:\ProgramData\ssh(sshd服務的第一次啓動後,將建立該目錄);
  • 日誌文件:c:\windows\system32\OpenSSH\logs\sshd.log;
  • authorized_keys文件和密鑰存儲在目錄中:%USERPROFILE%\.ssh\

在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.5 MB)。將存檔解壓縮到目標目錄:C:\ OpenSSH-Win;

  1. 將存檔解壓縮到目標目錄:C:\ OpenSSH-Win;
  2. 啓動提高的PowerShell CLI並切換到OpenSSH文件夾:Cd C:\OpenSSH-Win
  3. 將OpenSSH目錄的路徑添加到Path環境變量(系統屬性->高級選項卡->環境變量->選擇並編輯Path系統變量->將路徑添加到OpenSSH文件夾);

 

4.安裝OpenSSH服務器:(.\install-sshd.ps1綠色消息應顯示「 sshd和ssh-agent服務已成功安裝 」);

五、爲服務器生成SSH密鑰(須要啓動sshd服務):
ssh-keygen.exe –Assh-keygen: generating new host keys: RSA DSA ECDSA ED25519

 六、爲SSHD服務啓用自動啓動,而後使用如下PowerShell服務管理命令啓動它:
Set-Service -Name sshd -StartupType ‘Automatic’
Start-Service sshd
 
七、重啓你的電腦:
Restart-Computer
 
八、使用PowerShell在Windows防火牆中打開TCP端口22,以接收傳入的SSH通訊: New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
 
 
 
 
 
 
九、 在任何文本編輯器中打開SSHD配置文件(C:\ ProgramData \ SSH \ sshd_config)。查找並檢查 Subsystem sftp 指令的值 SFTP-SERVER.EXE 文件應在此處指定。
相關文章
相關標籤/搜索