Octroi de l'accès au fichier du service Windows

0

J'essaie d'établir une connexion avec openssh en utilisant un service. Malheureusement, openssh exige que la clé d'authentification ne soit lisible que par l'utilisateur qui a l'intention de bien l'utiliser ... (s'il y a un moyen de le faire ignorer cette vérification, je ne l'ai pas trouvée). Cela fonctionne bien avec les utilisateurs normaux, en utilisant:

icacls .\private.key /inheritance:r
icacls .\private.key /grant:r "%username%":"(R)"

Les services Windows exécutent leur propre semi-utilisateur et je ne peux absolument pas donner à cet utilisateur la bonne autorité de fichier.

edit: Si quelqu'un a de bonnes idées pour un autre logiciel opensource ou libre d'utiliser des programmes ou des bibliothèques ssh pouvant être utilisés pour créer des tunnels avec des clés d'authentification, je suis tout ouïe. Il semble que beaucoup d’entre eux aient du mal à supporter correctement les fenêtres.

Exclut
la source
Salut! Sur quel compte votre service est-il actuellement configuré pour fonctionner? Qu'avez-vous déjà essayé d'accorder à ce compte la permission de lire ce fichier et quel a été le résultat? En ce qui concerne votre édition: nous ne recommanderons pas de logiciel, car ce n'est pas un sujet pour SU.
cʜιᴇ007
Dans l'onglet "Connexion" des propriétés du service, vous pouvez modifier l'utilisateur sous lequel le service s'exécute. ou avez-vous essayé: icacls ./test.txt / grant: r "SYSTÈME": "(D)"
Garr Godfrey
@ Ƭᴇcʜιᴇ007 Il est configuré pour s'exécuter en tant que "système local". Étant donné que le service est créé par programme sur divers ordinateurs, je ne pourrai pas choisir son utilisateur
Excludos
@GarrGodfrey À première vue, cela semble fonctionner, car il ne génère aucune erreur immédiate, mais la connexion SSH ne fonctionne pas pour une raison quelconque. Je vais continuer à jouer pour voir si je peux obtenir des erreurs supplémentaires (ou, mieux, le faire fonctionner). Cela semble être une solution très simple si c'était tout ce qui était nécessaire.
Excludos
1
SYSTEM est le nom d'utilisateur du "Système local". Mais un service qui n'est pas configuré pour fonctionner de manière interactive présente d'autres limitations.
Garr Godfrey

Réponses:

1

Publier comme réponse pour pouvoir la trouver plus facilement (à l’origine dans les commentaires).

Le nom d'utilisateur par défaut des services Windows sous lequel on s'exécute est simplement "SYSTÈME". Ainsi, la méthode de ligne de commande pour définir les autorisations:

icacls .\private.key /inheritance:r
icacls .\private.key /grant:r "SYSTEM":"(R)"
Garr Godfrey
la source