Configuration du shell par défaut pour OpenSSH sous Windows
Le shell de commande par défaut fournit l’expérience qu’un utilisateur voit lorsqu’il se connecte au serveur à l’aide de SSH. Le Windows par défaut initial est le shell de commande Windows (cmd.exe). Windows inclut également PowerShell et Bash, et des shells de commandes tiers sont également disponibles pour Windows et peuvent être configurés comme shell par défaut pour un serveur.
Pour définir le shell de commande par défaut, vérifiez d’abord que le dossier d’installation d’OpenSSH se trouve sur le chemin du système. Pour Windows, le dossier d’installation par défaut est SystemDrive:WindowsDirectory\System32\openssh. La commande suivante affiche le paramètre de chemin actuel et y ajoute le dossier d’installation OpenSSH par défaut.
Shell de commande | Commande à utiliser |
---|---|
Commander | chemin |
PowerShell | $env:path |
La configuration du shell ssh par défaut est effectuée dans le registre Windows en ajoutant le chemin complet de l’exécutable du shell à Computer\HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH dans la valeur de chaîne DefaultShell.
Par exemple, la commande PowerShell suivante définit le shell par défaut sur powershell.exe :
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
Configurations Windows dans sshd_config
Sous Windows, sshd lit les données de configuration à partir de %programdata%\ssh\sshd_config par défaut, ou un fichier de configuration différent peut être spécifié en lançant sshd.exe avec le paramètre -f. Si le fichier est absent, sshd en génère un avec la configuration par défaut au démarrage du service.
Les éléments répertoriés ci-dessous fournissent une configuration spécifique à Windows possible via des entrées dans sshd_config. Il existe d’autres paramètres de configuration possibles qui ne sont pas répertoriés ici, car ils sont traités en détail dans la ligne documentation en Win32 OpenSSH .
AllowGroups, AllowUsers, DenyGroups, DenyUsers
Le contrôle des utilisateurs et des groupes pouvant se connecter au serveur se fait à l’aide des directives AllowGroups, AllowUsers, DenyGroups et DenyUsers. Les directives allow/deny sont traitées dans l’ordre suivant : DenyUsers, AllowUsers, DenyGroups et enfin AllowGroups. Tous les noms de compte doivent être spécifiés en minuscules. Voir PATTERNS dans ssh_config pour plus d’informations sur les modèles pour les caractères génériques.
Lors de la configuration des règles basées sur les utilisateurs/groupes avec un utilisateur ou un groupe de domaine, utilisez le format suivant : user?domain*
. Windows autorise plusieurs formats pour spécifier les principaux de domaine, mais beaucoup entrent en conflit avec les modèles Linux standard. Pour cette raison, * est ajouté pour couvrir les FQDN. De plus, cette approche utilise “?”, au lieu de @, pour éviter les conflits avec le format username@host.
Les utilisateurs/groupes de travail et les comptes connectés à Internet sont toujours résolus en leur nom de compte local (pas de partie de domaine, similaire aux noms Unix standard). utilisateurs domaine et groupes sont strictement résolus à NameSamCompatible Format – domain_short_name \ user_name. Toutes les règles de configuration basées sur les utilisateurs/groupes doivent respecter ce format.
Exemples pour les utilisateurs et les groupes de domaine
DenyUsers contoso\admin@192.168.2.23 : blocks contoso\admin from 192.168.2.23
DenyUsers contoso\* : blocks all users from contoso domain
AllowGroups contoso\sshusers : only allow users from contoso\sshusers group
Exemples pour les utilisateurs et groupes locaux
AllowUsers localuser@192.168.2.23
AllowGroups sshusers
AuthenticationMethods
Pour Windows OpenSSH, les seules méthodes d’authentification disponibles sont “mot de passe” et “clé publique”.
Fichier de clés autorisées
La valeur par défaut est “.ssh/authorized_keys .ssh/authorized_keys2”. Si le chemin n’est pas absolu, il est pris par rapport au répertoire personnel de l’utilisateur (ou au chemin de l’image de profil). Ex. c:\utilisateurs\utilisateur. Notez que si l’utilisateur appartient au groupe d’administrateurs, %programdata%/ssh/administrators_authorized_keys est utilisé à la place.
ChrootDirectory (Support ajouté dans la v7.7.0.0)
Cette directive n’est prise en charge qu’avec les sessions sftp. Une session à distance dans cmd.exe ne respecterait pas cela. Pour configurer un serveur chroot uniquement sftp, définissez ForceCommand sur internal-sftp. Vous pouvez également configurer scp avec chroot, en implémentant un shell personnalisé qui n’autoriserait que scp et sftp.
HostKey
Les valeurs par défaut sont %programdata%/ssh/ssh_host_ecdsa_key, %programdata%/ssh/ssh_host_ed25519_key, %programdata%/ssh/ssh_host_dsa_key et %programdata%/ssh/ssh_host_rsa_key. Si les valeurs par défaut ne sont pas présentes, sshd les génère automatiquement au démarrage du service.
Match
Notez que les règles de modèle dans cette section. Les noms d’utilisateur et de groupe doivent être en minuscules.
PermisRootLogin
Non applicable sous Windows. Pour empêcher la connexion administrateur, utilisez Administrateurs avec la directive DenyGroups.
SyslogFacilité
Si vous avez besoin d’une journalisation basée sur des fichiers, utilisez LOCAL0. Les journaux sont générés sous %programdata%\ssh\logs. Pour toute autre valeur, y compris la valeur par défaut, AUTH dirige la journalisation vers ETW. Pour plus d’informations, consultez Fonctionnalités de journalisation dans Windows .
Non supporté
Les options de configuration suivantes ne sont pas disponibles dans la version OpenSSH fournie dans Windows Server 2019 et Windows 10 build 1809 :
- AcceptEnv
- AllowStreamLocalForwarding
- Commande Clés Autorisées
- AuthorizedKeysCommandUser
- AutoriséPrincipalsCommande
- AutoriséPrincipalsCommandUser
- Compression
- ExposeAuthInfo
- GSSAPIAuthentification
- GSSAPICleanupCredentials
- GSSAPIStrictAcceptorCheck
- Types de clé acceptés basés sur l’hôte
- Authentification basée sur l’hôte
- HostbasedUsesNameFromPacketOnly
- IgnoreRhosts
- IgnoreUserKnownHosts
- KbdInteractiveAuthentication
- KerberosAuthentification
- KerberosGetAFSToken
- KerberosOuLocalPasswd
- KerberosTicketCleanup
- PermisTunnel
- PermisUserEnvironnement
- PermisUtilisateurRC
- Fichier Pid
- ImprimerDernierJournal
- RDomaine
- StreamLocalBindMask
- StreamLocalBindUnlink
- StrictModes
- X11DisplayOffset
- X11Transfert
- X11UseLocalhost
- XAuthLocation
Merci de votez pour cet article :