gamethis.win_openssh
Rol de Ansible win_openssh
Instala Win32-OpenSSH en un host de Windows.
Nota: Este rol ha sido probado en Win32-OpenSSH v7.7.2.0p1-Beta, versiones más nuevas deberían funcionar, pero no hay garantía.
Con las opciones predeterminadas, este rol hará;
- Instalar
Win32-OpenSSH
enC:\Program Files\OpenSSH
basado en la última versión disponible en GitHub. - Configurar los servicios
sshd
yssh-agent
y hacer que se inicien automáticamente. - Crear una regla de firewall que permita el tráfico entrante en el puerto
22
para los perfiles de reddominio
yprivado
. - Configurar el archivo
sshd_config
para permitir la autenticación con clave pública y contraseña.
También se pueden configurar las siguientes opciones como parte del rol, pero requieren que se establezcan algunas variables opcionales;
- Especificar una versión específica para descargar desde GitHub o otra URL que apunte al zip.
- Especificar dónde instalar los binarios.
- Controlar si se deben configurar los servicios del servidor SSH.
- Controlar si los servicios SSH deben iniciarse automáticamente.
- Definir los perfiles de firewall para permitir el tráfico ssh entrante.
- Especificar el puerto y otros valores seleccionados de sshd_config.
- Agregar una(s) clave(s) pública(s) al perfil del usuario actual.
Requisitos
- Windows Server 2008 R2 o superior.
Variables
Variables Obligatorias
Ninguna, este rol se ejecutará con las opciones predeterminadas establecidas.
Variables Opcionales
opt_openssh_architecture
: La arquitectura de Windows, debe estar configurada como32
o64
(predeterminado:64
).opt_openssh_firewall_profiles
: Los perfiles de firewall para permitir el tráfico SSH entrante (predeterminado:dominio,privado
).opt_openssh_install_path
: El directorio donde se instalarán los binarios OpenSSH (predeterminado:C:\Program Files\OpenSSH
).opt_openssh_pubkeys
: Una cadena o lista de cadenas para agregar al archivoauthorized_keys
del usuario, por defecto no se agregarán claves. Siopt_openssh_shared_admin_key
esTrue
, estas claves no afectarán la autenticación de los usuarios administradores.opt_openssh_shared_admin_pubkeys
: Una cadena o lista de cadenas para agregar al archivo de claves autorizadas de administradores.opt_openssh_setup_service
: Si se deben instalar los componentes del servicio sshd o solo mantener los ejecutables de cliente (predeterminado:True
).opt_openssh_skip_start
: No iniciará el serviciosshd
yssh-agent
y tampoco se establecerá para iniciar automáticamente (predeterminado:False
).opt_openssh_temp_path
: El directorio temporal para descargar el zip y los archivos extraídos (predeterminado:C:\Windows\TEMP
).opt_openssh_url
: Establece la ubicación de descarga del zip de OpenSSH, si se omite, se obtendrá del repositorio de GitHub.opt_openssh_version
: Establece una versión específica para descargar desde GitHub, esto solo es válido cuandoopt_openssh_url
no está configurado (predeterminado:latest
).opt_openssh_zip_file
: La ruta a un archivo zip de versión de OpenSSH que se utilizará para instalar OpenSSH. Esto se usará en lugar deopt_openssh_url
si se define, yopt_openssh_zip_remote_src
controla si la ruta es local para el controlador o local para el host de Windows.opt_openssh_zip_remote_src
: (predeterminado:False
)
También puede personalizar los siguientes valores de sshd_config:
opt_openssh_port
: Alinea conPort
, el puerto en el que el servicio SSH escuchará (predeterminado:22
).opt_openssh_pubkey_auth
: Alinea conPubkeyAuthentication
, si el servicio SSH permitirá autenticación con claves SSH (predeterminado:True
).opt_openssh_password_auth
: Alinea conPasswordAuthentication
, si el servicio SSH permitirá autenticación con contraseñas (predeterminado:True
).opt_openssh_shared_admin_key
: Establecer enTrue
para que los administradores usen una clave de autorización compartida en__PROGRAMDATA__/ssh/administrators_authorized_keys
. Establecer enFalse
para asegurar que se use%USER_PROFILE%\.ssh\authorized_keys
para todos los usuarios (predeterminado:False
).
Puede personalizar las opciones de shell para controlar cómo el servicio sshd inicia un nuevo shell:
opt_openssh_default_shell
: Sobrescribe el shell predeterminado establecido por la instalación de OpenSSH. Este debe ser el camino absoluto a un ejecutable que desea ejecutar al iniciar una sesión SSH.opt_openssh_default_shell_command_option
: Establece los argumentos utilizados al invocar el shell, esto no debe ajustarse en circunstancias normales.opt_openssh_default_shell_escape_args
: Omite el escape automático de argumentos al invocar el shell.opt_openssh_powershell_subsystem
: Establece el subsistema para la remoción de PowerShell, necesita ser una ruta 8.3 como:C:\PROGRA~1\POWERS~1\7\pwsh.exe
(predeterminado:indefinido
).
Variables de Salida
Ninguna
Dependencias del Rol
Ninguna
Ejemplo de Playbook
- name: instalar Win32-OpenSSH con los valores predeterminados
hosts: windows
gather_facts: no
roles:
- jborean93.win_openssh
- name: instalar una versión específica de Win32-OpenSSH en una carpeta personalizada
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: solo instalar componentes del cliente de Win32-OpenSSH
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_openssh
opt_openssh_setup_service: False
Pruebas
Para probar este rol, ve a la carpeta tests y ejecuta vagrant up
. Esto levantará un host de Windows Server 2019 para probar el rol. Si el host ya está en línea, ejecutar vagrant provision
volverá a correr las pruebas.
Pendientes
Ninguno - se aceptan solicitudes de características.
ansible-galaxy install gamethis.win_openssh