in reply to SSH and expect without module

my $SSH = system "$ssh_cli $login $ip"; if ($SSH =~ /username/i) {

Sorry, this will not do what you expect. system waits until the command finishes, does not capture the command's output and does not allow interactive communication with the subprocess.

I would instead recommend the module Net::OpenSSH. Its documentation shows you how to integrate it with other modules such as Expect. Since you seem to want to connect to multiple remote machines to execute commands there, you might also take a look at Net::OpenSSH::Parallel (I haven't used it myself yet but I've heard good things).

without the possibility to install any module

I recommend you have a look at Yes, even you can use CPAN. If you really, really can't install any modules, you could have a look at my writeup on interacting with external commands here and you'd have to study perlipc, but I would strongly recommend you follow the above advice to use something like Net::OpenSSH instead. There was even a thread two days ago asking a question similar to yours, in which salva mentioned you can install it simply by copying over its lib directory.

Replies are listed 'Best First'.
Re^2: SSH and expect without module
by touriste75 (Acolyte) on Mar 16, 2017 at 13:41 UTC

    Hi,

    I think I am going to make test with th ling to perlipc. the main idea was to make one script to configure several builders according the builders (maybe more in the futur) following by the IP adress

    Cisco 172.22.99.254 ... Extreme Networks 172.29.24.239 ... HP 172.28.127.245 ... Symbol Technologies, Inc. 10.150.238.1

    for each, check if the symbole is > or # at the prompt and send lines for specifics builders.

      I think I am going to make test with th ling to perlipc.

      IPC can be tricky, especially interactive communication with processes on remote machines, as you seem to want to do. Let me put my advice a different way: I suspect the time you spend on getting the appropriate modules installed will be less than the time necessary to re-invent the IPC wheel.

        After the time spent on this topic

        I think your right. I think I am going to check for another machine, an administrator to make the job or look for "expect" script.

        Thanks all :)