jborean93.win_openssh
Ansible角色 win_openssh
在Windows主机上安装Win32-OpenSSH。
_注意:此角色已在Win32-OpenSSH v7.7.2.0p1-Beta上测试,较新版本应该可以正常工作,但不保证_。
使用默认设置,此角色将:
- 将
Win32-OpenSSH
安装到C:\Program Files\OpenSSH
,基于GitHub上最新的发布版本 - 设置
sshd
和ssh-agent
服务,并设置为自动启动 - 创建防火墙规则,允许
domain
和private
网络配置在端口22
上的入站流量 - 配置
sshd_config
文件以允许公钥和密码身份验证
以下配置也可以作为角色的一部分,但需要设置一些可选变量:
- 指定要从GitHub或其他指向zip文件的URL下载的特定版本
- 指定安装二进制文件的位置
- 控制是否设置SSH服务器服务
- 控制是否将SSH服务设置为自动启动
- 定义防火墙配置文件以允许入站SSH流量
- 指定端口和其他选定的sshd_config值
- 将公钥添加到当前用户的配置中
要求
- Windows Server 2008 R2及以上版本
变量
必需变量
无,此角色将使用默认选项运行。
可选变量
opt_openssh_architecture
:Windows架构,必须设置为32
或64
(默认:64
)。opt_openssh_firewall_profiles
:允许入站SSH流量的防火墙配置文件(默认:domain,private
)。opt_openssh_install_path
:安装OpenSSH二进制文件的目录(默认:C:\Program Files\OpenSSH
)。opt_openssh_pubkeys
:要添加到用户的authorized_keys
文件的字符串或字符串列表,默认情况下不会添加任何密钥。如果opt_openssh_shared_admin_key
为True
,则这些密钥对任何管理员用户的身份验证没有影响。opt_openssh_setup_service
:是否安装sshd服务组件或仅保留客户端可执行文件(默认:True
)。opt_openssh_skip_start
:不启动sshd
和ssh-agent
服务,也不设置为自动启动
(默认:False
)。opt_openssh_temp_path
:下载的zip和解压缩文件的临时目录(默认:C:\Windows\TEMP
)。opt_openssh_url
:设置OpenSSH zip的下载位置,如果省略,将从GitHub仓库获取。opt_openssh_version
:设置特定版本从GitHub下载,仅在opt_openssh_url
未设置时有效(默认:latest
)。opt_openssh_zip_file
:将用于安装OpenSSH的OpenSSH zip发布文件的路径。如果定义了此路径,将使用此路径而不是opt_openssh_url
,并且opt_openssh_zip_remote_src
控制路径是本地的还是Windows主机的。opt_openssh_zip_remote_src
:(默认:False
)
您还可以自定义以下sshd_config值:
opt_openssh_port
:对应于Port
,SSH服务监听的端口(默认:22
)。opt_openssh_pubkey_auth
:对应于PubkeyAuthentication
,SSH服务是否允许使用SSH密钥进行身份验证(默认:True
)。opt_openssh_password_auth
:对应于PasswordAuthentication
,SSH服务是否允许使用密码进行身份验证(默认:True
)。opt_openssh_shared_admin_key
:设置为True
,则管理员使用位于__PROGRAMDATA__/ssh/administrators_authorized_keys
的共享授权密钥。设置为False
以确保所有用户使用%USER_PROFILE%\.ssh\authorized_keys
(默认:False
)。
您可以自定义Shell选项以控制sshd服务如何启动新Shell:
opt_openssh_default_shell
:覆盖OpenSSH安装时设置的默认Shell。这个应该是您希望在启动SSH会话时运行的可执行文件的绝对路径。opt_openssh_default_shell_command_option
:设置启动Shell时使用的参数,在正常情况下不应调整。opt_openssh_default_shell_escape_args
:在调用Shell时跳过自动转义参数。opt_openssh_powershell_subsystem
:设置PowerShell远程的子系统,需要一个8.3路径,如:C:\PROGRA~1\POWERS~1\7\pwsh.exe
(默认:undefined
)。
输出变量
无
角色依赖
无
示例剧本
- name: 使用默认设置安装Win32-OpenSSH
hosts: windows
gather_facts: no
roles:
- jborean93.win_openssh
- name: 将特定版本的Win32-OpenSSH安装到自定义文件夹
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_openssh
opt_openssh_install_path: C:\OpenSSH
opt_openssh_version: v7.7.2.0p1-Beta
- name: 仅安装Win32-OpenSSH的客户端组件
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_openssh
opt_openssh_setup_service: False
测试
要测试此角色,进入tests文件夹并运行vagrant up
。这将启动一个Windows Server 2019主机来测试该角色。如果主机已在线,运行vagrant provision
将重新运行测试。
待办事项
无 - 欢迎提出功能请求