从 Win10 1809 和 Windows Server 2019 开始 Windows 开始支持 OpenSSH Server。

Install Win32 OpenSSH

Manoj Ampalam edited this page on 14 Sep 2018 · 

Install Win32 OpenSSH (test release)

  1. Note   and   first.

  2. Download the   build of OpenSSH. To get links to latest downloads  .

  3. Extract contents of the latest build to  C:\Program Files\OpenSSH (Make sure binary location has the Write permissions to just to SYSTEM, Administrator groups. Authenticated users should and only have Read and Execute.)

  4. In an elevated Powershell console, run the following

    • powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
  5. Open the firewall for sshd.exe to allow inbound SSH connections

    • New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

    Note:  New-NetFirewallRule is for Windows 2012 and above servers only. If you're on a client desktop machine (like Windows 10) or Windows 2008 R2 and below, try:

    netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
  6. Start  sshd (this will automatically generate host keys under %programdata%\ssh if they don't already exist)

    • net start sshd
  7. Optional

    • To configure a default shell, see 
    • To setup  sshd service to auto-start
      • Set-Service sshd -StartupType Automatic
    • To migrate sshd configuration from older versions (0.0.X.X), see 

Uninstall Win32 OpenSSH

  • Start Windows Powershell as Administrator
  • Navigate to the OpenSSH directory
    • cd 'C:\Program Files\OpenSSH'
  • Run the uninstall script
    • powershell.exe -ExecutionPolicy Bypass -File uninstall-sshd.ps1

使用 Windows 设置来安装 OpenSSH

可以使用 Windows Server 2019 和 Windows 10 设备上的 Windows 设置安装这两个 OpenSSH 组件。

若要安装 OpenSSH 组件:

  1. 打开“设置”,选择“应用”>“应用和功能”,然后选择“可选功能” 。

  2. 扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择“添加功能”,然后:

    • 查找“OpenSSH 客户端”,再单击“安装”
    • 查找“OpenSSH 服务器”,再单击“安装”

设置完成后,回到“应用”>“应用和功能”和“可选功能”,你应会看到已列出 OpenSSH 。

 备注

安装 OpenSSH 服务器将创建并启用一个名为 OpenSSH-Server-In-TCP 的防火墙规则。 这允许端口 22 上的入站 SSH 流量。 如果未启用此规则且未打开此端口,那么连接将被拒绝或重置。

使用 PowerShell 安装 OpenSSH

若要使用 PowerShell 安装 OpenSSH,请先以管理员身份运行 PowerShell。 为了确保 OpenSSH 可用,请运行以下 cmdlet:

PowerShell复制

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

如果两者均尚未安装,则此操作应返回以下输出:

复制

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent

Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

然后,根据需要安装服务器或客户端组件:

PowerShell复制

# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

这两者应该都会返回以下输出:

复制

Path          :
Online        : True
RestartNeeded : False

Win10 1809 和 Windows Server 2019 以外的windows上安装openSSH

1,下载openSSH windows版

2,解压到C:\Program Files\OpenSSH   不要放在别的路径下,官方这样要求的

3,cmd到openSSH路径下

依次执行

1)安装sshd服务

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

2)开放22号端口(如果你在windows关闭了防火墙并配置了入站规则可以不执行如下命令,多执行不影响)

netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

3)配置开机自启sshd服务

sc config sshd start= auto

到此就安装完成

4,将C:\Program Files\OpenSSH添加到path中,免得每次都要切到C:\Program Files\OpenSSH才能使用ssh,启动ssh服务

net start sshd

5,测试

首次连接未知主机会有是否继续的警告,输入yes就可以了,然后输入密码即可。

win7上没有显示[root@localhost ~]#   但不影响命令的执行。

6,ssh出于安全考虑,每次连接都会提示输入密码,为了避免麻烦,就要配置密钥对。

1)生成密钥对命令

ssh-keygen -t rsa

这里采用rsa算法,你也可以使用其他算法,但dsa默认不支持,这里是个坑,最好生成rsa密钥,ssh支持,随自己吧

2)将公钥传到远程主机的~/.ssh目录下

名字改成authorized_keys

3)修改远程主机sshd_config配置

PubkeyAuthentication yes

StrictModes no

重启sshd服务

7,cmd直连远程linux

注:以上所有操作在win7和win10上都测试通过。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐