gamethis.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或其他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_shared_admin_pubkeys
:要添加到admin的authorized_keys
文件的字符串或字符串列表。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
(默认:未定义
)
输出变量
无
角色依赖
无
示例剧本
- 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
将重新运行测试。
待办事项
无 - 欢迎提出功能请求