windows10 安装 openssh

  1. 首先注意这些注意事项项目范围

  2. 下载OpenSSH 最新版本。获取链接到最新的下载这个wiki页面

  3. 将最新版本的内容提取到C:\Program Files\OpenSSH(确保二进制位置具有写入权限,仅限于SYSTEM,管理员组,经过身份验证的用户应该且只能具有读取和执行。)

  4. 在升高的Powershell控制台中,运行以下命令

    • powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
  5. 打开sshd.exe的防火墙以允许入站SSH连接

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

    注意:New-NetFirewallRule仅适用于Windows 2012及更高版本的服务器。如果您位于客户端台式机(如Windows 10)或Windows 2008 R2及更低版本上,请尝试:

    netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
    
  6. 开始sshd(如果它们不存在,这将自动生成%programdata%\ ssh下的主机密钥)

    • net start sshd
  7. 从0.0.XX版本迁移sshd配置(可选):

    • 要使用现有的自定义sshd_config,您需要将其从二进制位置复制到%programdata%\ ssh \ sshd_config(请注意,%programdata%是一个隐藏目录)。
    • 要使用现有的主机密钥,您需要将它们从二进制位置复制到%programdata%\ ssh \
    • 以前的版本需要SSHD资源(sshd_config,主机密钥和authorized_keys)具有对“NT Service \ SSHD”的读取访问权限。这不再是一项要求,应删除相应的ACL条目。你可以运行Powershell.exe -ExecutionPolicy Bypass -Command '. .\FixHostFilePermissions.ps1 -Confirm:$false'(注意第一个“。”是一个调用操作符)来修正这些权限。
  8. 设置sshdssh-agent自动启动(可选)

    • Set-Service sshd -StartupType Automatic
    • Set-Service ssh-agent -StartupType Automatic
  9. 配置默认的ssh shell(可选)

如果您配置了默认shell,请确保OpenSSH安装路径位于系统PATH中。如果尚不存在,请修改系统PATH并重新启动sshd服务。

在服务器端,在Windows注册表中配置默认​​的ssh shell。

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH\DefaultShell - 完整路径(区分大小写)的shell可执行文件

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH\DefaultShellCommandOption - 配置的默认shell需要执行命令并立即退出并返回到调用进程的开关。它用于执行远程ssh命令。示例 - ssh user @ ip主机名


示例 - Powershell cmdlet将powershell bash设置为默认shell

  • New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

  • New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShellCommandOption -Value "/c" -PropertyType String -Force


如果您将powershell.exe / cmd.exe / WSL-bash.exe配置为默认的ssh shell,那么您可以忽略它Computer\HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH\DefaultShellCommandOption你的注册表应该看起来像这样

如果你想配置除powershell / cmd / WSL-bash之外的默认shell(Ex-cygwin),那么你的注册表应该看起来像这样

卸载Win32 OpenSSH

  • 以管理员身份启动Windows Powershell
  • 导航到OpenSSH目录
    • cd 'C:\Program Files\OpenSSH'
  • 运行卸载脚本
    • powershell.exe -ExecutionPolicy Bypass -File uninstall-sshd.ps1

猜你喜欢

转载自blog.csdn.net/qq_24898865/article/details/80842892