Changement de mot de passe a distance via SSH [Résolu/Fermé]

Signaler
-
 bruno -
Bonjour,

je cherche a modifier un mot de passe a distance sur une machine linux depuis une machine linux.
J'ai lis en place un certificat pour passer en ssh, cela fonctionne quand je n'utilise pas de variable d'environnement exemple :

[root@srv-prd-exp ~]# ssh root@srv-dev-test 'echo -e "Temp15;\nTemp15;" | (passwd --stdin test509)'
Changing password for user test509.
passwd: all authentication tokens updated successfully.

avec cette commande le mot de passe est bien changé mais quand je le fais avec des variable il ne me prend pas en compte le user que je lui passe donc il prend root et le mot de passe non plus :

PASSWORD=Temp15;
USER=test509
[root@srv-prd-exp ~]# ssh root@srv-dev-test 'echo -e "$PASSWORD\n$PASSWORD" | (passwd --stdin $USER)'
passwd: Authentication information cannot be recovered
Changing password for user root.


Savez vous d'où pourrais bien venir mon souci ??
Merci d'avance

2 réponses

Messages postés
2083
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2020
234
Salut,
les variables d'environnement ne sont pas passées à travers ssh,
Il me semble avoir lu quelque part que c'était le cas à un moment mais que ça a été modifié pour des raisons de sécurités.

Tu peux faire interpréter les variables par le bash AVANT de l'envoyer par ssh, pour ça il faut que la chaîne soit entre guillemets double, quelque chose comme ça :
ssh root@srv-dev-test "echo -e \"$PASSWORD\n$PASSWORD\" | (passwd --stdin $USER)" 


PS : c'est quoi ce shell en root !
[root@srv-prd-exp ~]#


;-) Flachy Joe ;-)
"Qui ne se plante jamais n'a aucune chance de pousser !" Graf anonyme
Messages postés
35916
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
1 décembre 2020
5 692
Salut,

PASS=Temp15;UTIL=test509
echo "${UTIL}:${PASS}" | ssh root@SERVER chpasswd


Hello

merci ca marche impeccable :-)