gamethis.win_openssh
Rôle Ansible win_openssh
Installe Win32-OpenSSH sur un hôte Windows.
Remarque : Ce rôle a été testé sur Win32-OpenSSH v7.7.2.0p1-Beta, les versions plus récentes devraient fonctionner mais cela n'est pas garanti.
Avec les paramètres par défaut, ce rôle va :
- Installer
Win32-OpenSSH
dansC:\Program Files\OpenSSH
, basé sur la dernière version disponible sur GitHub - Configurer les services
sshd
etssh-agent
et les mettre en démarrage automatique - Créer une règle de pare-feu qui autorise le trafic entrant sur le port
22
pour les profils de réseaudomain
etprivate
- Configurer le fichier
sshd_config
pour autoriser l'authentification par clé publique et par mot de passe
Les éléments suivants peuvent également être configurés dans le rôle mais nécessitent certains paramètres optionnels :
- Spécifier une version spécifique à télécharger depuis GitHub ou une autre URL pointant vers le fichier zip
- Indiquer où installer les binaires
- Contrôler la configuration des services SSH
- Contrôler le démarrage automatique des services SSH
- Définir les profils de pare-feu pour autoriser le trafic SSH entrant
- Spécifier le port et d'autres valeurs sélectionnées dans
sshd_config
- Ajouter une ou plusieurs clés publiques au profil de l'utilisateur actuel
Conditions requises
- Windows Server 2008 R2+
Variables
Variables obligatoires
Aucune, ce rôle fonctionnera avec les options par défaut.
Variables optionnelles
opt_openssh_architecture
: L'architecture Windows, doit être définie sur32
ou64
(par défaut :64
).opt_openssh_firewall_profiles
: Les profils de pare-feu pour autoriser le trafic SSH entrant (par défaut :domain,private
).opt_openssh_install_path
: Le répertoire d'installation des binaires OpenSSH (par défaut :C:\Program Files\OpenSSH
).opt_openssh_pubkeys
: Une chaîne ou une liste de chaînes à ajouter au fichierauthorized_keys
de l'utilisateur, par défaut aucune clé ne sera ajoutée. Siopt_openssh_shared_admin_key
estTrue
, ces clés n'auront aucun effet sur l'authentification des utilisateurs Admin.opt_openssh_shared_admin_pubkeys
: Une chaîne ou une liste à ajouter au fichieradministrators_authorized_keys
.opt_openssh_setup_service
: Indique si les composants du service sshd doivent être installés ou si seuls les exécutables clients doivent être installés (par défaut :True
).opt_openssh_skip_start
: Ne démarre pas les servicessshd
etssh-agent
et ne les définit pas sur démarrage automatique (par défaut :False
).opt_openssh_temp_path
: Le répertoire temporaire pour télécharger le zip et les fichiers extraits (par défaut :C:\Windows\TEMP
).opt_openssh_url
: Définit l'emplacement de téléchargement du zip OpenSSH, si omis, il sera récupéré depuis le dépôt GitHub.opt_openssh_version
: Définit une version spécifique à télécharger depuis GitHub, cela n'est valable que siopt_openssh_url
n'est pas défini (par défaut :latest
).opt_openssh_zip_file
: Le chemin vers un fichier zip de sortie OpenSSH qui sera utilisé pour installer OpenSSH. Cela sera utilisé à la place deopt_openssh_url
s'il est défini ;opt_openssh_zip_remote_src
contrôle si le chemin est local au contrôleur ou local à l'hôte Windows.opt_openssh_zip_remote_src
: (par défaut :False
)
Vous pouvez également personnaliser les valeurs suivantes dans sshd_config
:
opt_openssh_port
: Définit le port, le port sur lequel le service SSH écoutera (par défaut :22
).opt_openssh_pubkey_auth
: Définit si le service SSH autorisera l'authentification avec des clés SSH (par défaut :True
).opt_openssh_password_auth
: Définit si le service SSH autorisera l'authentification par mot de passe (par défaut :True
).opt_openssh_shared_admin_key
: Définit surTrue
pour que les administrateurs utilisent une clé d'autorisation partagée à__PROGRAMDATA__/ssh/administrators_authorized_keys
. Définit surFalse
pour s'assurer que%USER_PROFILE%\.ssh\authorized_keys
est utilisé pour tous les utilisateurs (par défaut :False
).
Vous pouvez personnaliser les options de shell pour contrôler comment le service sshd démarre un nouveau shell :
opt_openssh_default_shell
: Remplace le shell par défaut défini par l'installation OpenSSH. Cela devrait être le chemin absolu vers un exécutable que vous souhaitez exécuter lors du démarrage d'une session SSH.opt_openssh_default_shell_command_option
: Définit les arguments utilisés lors de l'invocation du shell, cela ne devrait pas être ajusté dans des circonstances normales.opt_openssh_default_shell_escape_args
: Ignore les arguments d'échappement automatique lors de l'invocation du shell.opt_openssh_powershell_subsystem
: Définit le sous-système pour le télétravail PowerShell, doit être un chemin 8.3 tel que :C:\PROGRA~1\POWERS~1\7\pwsh.exe
(par défaut :undefined
).
Variables de sortie
Aucune
Dépendances du rôle
Aucune
Exemple de Playbook
- name: installer Win32-OpenSSH avec les valeurs par défaut
hosts: windows
gather_facts: no
roles:
- jborean93.win_openssh
- name: installer une version spécifique de Win32-OpenSSH dans un dossier personnalisé
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: installer uniquement les composants client de Win32-OpenSSH
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_openssh
opt_openssh_setup_service: False
Tests
Pour tester ce rôle, allez dans le dossier tests et exécutez vagrant up
. Cela lancera un hôte Windows Server 2019 pour tester le rôle. Si l'hôte est déjà en ligne, exécuter vagrant provision
relancera les tests.
Liste d'attente
Aucune - les demandes de fonctionnalités sont les bienvenues.