开启方式

检查是否安装正确:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

# 返回示例:

Name  : OpenSSH.Client~~~~0.0.1.0

State : Installed

Name  : OpenSSH.Server~~~~0.0.1.0

State : NotPresent
  • Installed状态就是未安装,电脑作为服务端需要安装OpenSSH.Server

1. 界面操作方式

右键win选择设置或者win + i启动设置面板

  • 选择系统 -> 可选功能 -> 更多windows功能 -> OpenSSH找进行安装

2. 指令方式(推荐)

如果某一个状态不是`Installed`则用以下指令安装,安装完需要重启

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
  • 安装完毕之后,再次检测是否处于`Installed`,如果是待命状态需要重启电脑。

启动SSH

Start-Service sshd

重启方式(需要重启的话)

Restart-Service sshd

设置开机自启,否则每次开机都要执行启动

Set-Service -Name sshd -StartupType 'Automatic'

检查是否运行

Get-Service -Name sshd

进行SSH配置,文件路径C:\ProgramData\ssh\sshd_config

# 允许密码认证

PasswordAuthentication yes

# 禁用空密码登录

PermitEmptyPasswords no

# 允许本地用户登录

AllowUsers your_username

分配根目录和目录权限

sftp-test为指定目录,按情况修改,如果已经有目录,则不需要`mkdir`进行创建,用户名修改为指定帐号

icacls C:\sftp-test /grant "BUILTIN\Administrators:(OI)(CI)(F)" /T

icacls C:\sftp-test /grant "NT AUTHORITY\SYSTEM:(OI)(CI)(F)" /T

icacls C:\sftp-test /remove "Authenticated Users"

icacls C:\sftp-test /grant 用户名:(R)
  • 完全控制(F),修改(M)或写入(W)权限、读取(R)权限

配置sshd_config

添加以下配置

# Subsystem configuration for SFTP

Subsystem sftp internal-sftp

# Restrict SFTP user to a specific directory

Match User orange

    ChrootDirectory C:\sftp-test

    ForceCommand internal-sftp

    AllowTcpForwarding no

    X11Forwarding no

    PermitTunnel no

    AllowAgentForwarding no
  • 修改指定目录指定用户两个地方

  • 修改完记得重启

生成密钥(可选)

以管理员方式启动PowerShell,执行下面命令,秘钥登录方式使用,如果采用账户固定密码,则不需要此步骤

ssh-keygen -A

防火墙设置(可选)

如果无法连通参照此步骤,则在防火墙中放行`端口22`连接

1. win + i打开设置

2. 隐私与安全性 -> 防火墙和网络保护 -> 高级设置

  • 选择入站规则 -> 新建规则

  • 选择端口 -> TCP方式 -> 特定本地端口22

  • 一直下一步,填充一个名称SFTP连接

登录测试

启动PowerShell

netstat -an | findstr :22
  • 监听端口22查看ip。

  • 创建一个window用户作为SFTP的账号

sftp your_username@your_ip_address
  • 连接测试,通过ipconfig获取ipv4地址,比如帐号sftp Administrator@192.168.88.212

文章作者: 卡芙卡
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 胡桃の智能体
教程 Windows Windows SFTP
喜欢就支持一下吧