欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

windows10 安装 openssh

程序员文章站 2022-05-29 11:34:59
...
  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