Bonjour,
Je souhaite lancer des commandes via un script et des privilèges sur un serveur via un autre serveur à distance.
Mise en place :
- Un serveur A qui doit exécuter avec un compte C à privilège une commande.
- Un serveur B qui doit lancer la commande sur le serveur A via un compte D local au serveur A avec moins de privilège que le compte C.
Le serveur B est dans mon cas un linux, mais après mes tests cela peut être un windows cela ne change rien.
Cheminement :
Le serveur B se connecte au serveur A via SSH ou PSSESSION avec une clé RSA, aucune transmission de mot de passe en clair.
Ensuite sur le serveur A, via un script j'essaye de déchiffré le mot de passe du compte C chiffré dans un fichier.
J'ai testé deux méthodes,
- Méthode 1 - avec "Convertfrom-SecureString"
- Méthode 2 - avec "Protect-CmsMessage"
Dans les deux cas, j'utilise bien le même compte D sur le même serveur A pour chiffrer et déchiffrer.
Problème :
Le déchiffrement fonctionne dans les cas suivant :
- Fenêtre PowerShell en local sur le serveur A
- Via PSSession ou OpenSSH avec le compte D sur le serveur A si et seulement si il y a d'ouvert avec le compte D sur le serveur A une fenêtre PowerShell ou une session complète.
Le déchiffrement ne fonctionne pas via PSsession ou OpenSSH si aucune session ou fenêtre PowerShell n'est ouverte en local avec le compte D.
Cela peut correspondre à un problème de profil temporaire ou d'accès au store des certificats mais impossible de résoudre ce problème.
En complément, je n'ai pas besoin de réinitialiser ma connexion pssession ou ssh pour que cela fonctione, le simple fait d'ouvrir une fenêtre ou session local suffit à ce que la commande fonctionne de nouveau sans rien demander de plus. Ce qui me fait penser
que je ne suis pas dans le cas d'un profil temporaire.
Comment faire pour que cela fonctionne sans avoir en local une fenêtre ou session d'ouverte ?
Merci pour votre aide, cela fait quelques temps que je tourne autour du pot :).