Win32-OpenSSH方式

官方文档

https://docs.ansible.com/ansible/latest/user_guide/windows.html
https://github.com/PowerShell/Win32-OpenSSH/releases/

下载OpenSSH

查看当前服务器操作系统类型

32位下载

http://dl.bigops.com/OpenSSH-Win32.zip

64位下载

http://dl.bigops.com/OpenSSH-Win64.zip

解压zip文件到目录C:\Program Files\,目录改名为OpenSSH,运行powershell命令行执行

cd "C:\Program Files\OpenSSH"
powershell.exe -ExecutionPolicy Bypass -File uninstall-sshd.ps1
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

创建配置文件

服务器端的配置文件在 C:\ProgramData\ssh 目录中,注意 C:\ProgramData 是一个隐藏目录。

把C:\Program Files\OpenSSH\sshd_config_default改名为sshd_config,并拷贝到C:\ProgramData\ssh目录,然后编辑sshd_config

修改端口,建议修改为3322

Port 3322

win关闭UAC

控制面板/用户账号控制设置

新系统添加防火墙规则

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

老系统添加防火墙规则

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

杀毒软件添加白名单

如果是公有云服务器,安全组里添加容许3322 tcp端口

启动sshd、ssh-agent服务并设置开机启动

net start sshd
net start ssh-agent
Set-Service sshd -StartupType Automatic
Set-Service ssh-agent -StartupType Automatic

设置OpenSSH登录用户默认使用powershell

powershell命令行下运行

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

工作组用户登录测试,在Linux系统上执行

ssh user@host
例如:ssh Administrator@192.168.1.2

域用户登录测试,在Linux系统上执行

ssh -l user@domain host
例如:ssh -l Administrator@bigops 192.168.1.2

常见问题

Windows域主机如何使用NTLM

启用NTLM2身份验证

https://docs.microsoft.com/zh-cn/troubleshoot/windows-client/windows-security/enable-ntlm-2-authentication

cmd运行gpedit.msc

选择【安全选项】

默认【没有定义】,右键点击【属性】

下拉选择一个选项后点击【确定】,设置置域中的 NTLM身份验证生效

在powershell中执行命令

winrm configSDDL default

添加控制用户,允许全部控制

常见错误

问题一、PowerShell启用winrm失败:拒绝访问 0x80070005 -2147024891

结检查步骤如下:

1、确定 Windows Remote Management (WS-Management) 服务已经启动。

2、确定网络访问使用经典模式,设置为:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]

“forceguest”=dword:00000000

3、确定当前administrators组中的账户都设置了密码,而不是空密码,空密码就会报拒绝访问的错。

使用空密码只容许控制台登录登录,设置为:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]

“LimitBlankPasswordUse”=dword:00000001

4、重启服务器。

results matching ""

    No results matching ""