windows server2016【玩转Server2019】在Windows上使⽤OpenSSH安装SFTP(SSHFTP)服务器
什么是SFTP?
SFTP(安全⽂件传输协议,安全FTP或SSH FTP)是SSH协议的扩展,是UNIX / Linux系统中的标准。从⽤户的⾓度来看,它与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协议。本质上只是具有SSL证书的简单FTP,⽽SFTP是在SSH会话内发送FTP数据和命令的协议。
在Windows 10 1803 + / Windows Server 2019上安装Win32 OpenSSH
在Windows 10 build 1803和更⾼版本中以及在Windows Server 2019中,OpenSSH软件包已经以诸如类的按需功能(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
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服务):
< –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⽂件应在此处指定。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论