faire un "su" dans une session SSH - Perl - Programmation
Marsh Posté le 03-08-2004 à 00:17:55
au choix:
- sudo NOPASSWD
- échange de clef et ssh en boucle locale
Marsh Posté le 03-08-2004 à 08:58:07
Pour repondre a BurgerGold, je suis obligé de faire un su car ce login est bloqué en accés direct (raison de securité), on doit donc se logger avec son username/password puis faire un su.
Taz, c'est une solution, mais je pense pas que les admins seront d'accord. Voila en gros mon script :
use Net::SSH::W32Perl;
my $ssh = Net::SSH::W32Perl->new($server);
$ssh->login($login, $passwd);
# jusque la c'est OK
my($stdout, $stderr, $exit) = $ssh->cmd("su - ".$sulogin);
#Mais la c'est pas bon, car su prompt pour un password
# que je ne sais pas envoyer.
Marsh Posté le 03-08-2004 à 10:27:01
ben refais un ssh c'est tout. je crois pas que les admins soient d'accord pour que tu code en dure le mot de passe dans ton script, fait un echange de clef et apres
ssh user@host command
Marsh Posté le 03-08-2004 à 11:35:28
Je peux pas me connecter en direct avec le $sulogin, car il est bloqué par les admins (accés direct interdit), c'est pour ca que je dois d'abord me logger avec mon $login puis faire un su avec $sulogin.
Pour le mot de passe, c'est un parametre du script, rien n'est hardcodé.
Marsh Posté le 03-08-2004 à 11:37:17
donc c'est hardcodé.
log toi avec ton login, puis fais un échange de clef pour pouvoir te connecter avec ssh autre_login@localhost sans saisie de mot de passe.
Marsh Posté le 02-08-2004 à 14:32:06
Salut,
j'utilise ActiveState avec le module Net::SSH:W32Perl pour acceder
via SSH differentes machines UNIX. Ca marche tres bien pour executer
une commande, par contre, une fois logger sur mon server SSH, je voudrai faire un "su" pour switcher de user, mais "su" demande un password que je ne sais pas envoyer avec Net::SSH:W32Perl.
Quelqu'un a deja fait ca ?
Merci.