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


什么是SFTP?

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

SFTP的主要優點:

  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-OpenSSH

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

  不要混淆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服務器:

Add-WindowsCapability -Online -Name OpenSSH.Server*

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

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

  • 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服務已成功安裝 ”);

5、為服務器生成SSH密鑰(需要啟動sshd服務):
ssh-keygen.exe –Assh-keygen: generating new host keys: RSA DSA ECDSA ED25519

 6、為SSHD服務啟用自動啟動,然后使用以下PowerShell服務管理命令啟動它:
Set-Service -Name sshd -StartupType ‘Automatic’
Start-Service sshd
 
7、重啟你的電腦:
Restart-Computer
 
8、使用PowerShell在Windows防火牆中打開TCP端口22,以接收傳入的SSH通信: New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
 
 
 
 
 
 
9、 在任何文本編輯器中打開SSHD配置文件(C:\ ProgramData \ SSH \ sshd_config)。查找並檢查 Subsystem sftp 指令的值 SFTP-SERVER.EXE 文件應在此處指定。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM