Net::SSH - Perl extension for secure shell
use Net::SSH qw(ssh issh sshopen2 sshopen3); ssh('user@hostname', $command); issh('user@hostname', $command); ssh_cmd('user@hostname', $command); ssh_cmd( { user => 'user', host => 'host.name', command => 'command', args => [ '-arg1', '-arg2' ], stdin_string => "string\n", } ); sshopen2('user@hostname', $reader, $writer, $command); sshopen3('user@hostname', $writer, $reader, $error, $command);
Simple wrappers around ssh commands.
For an all-perl implementation that does not require the system ssh command, see Net::SSH::Perl instead.
Calls ssh in batch mode.
Prints the ssh command to be executed, waits for the user to confirm, and (optionally) executes the command.
Calls ssh in batch mode. Throws a fatal error if data occurs on the command's STDERR. Returns any data from the command's STDOUT.
If using the hashref-style of passing arguments, possible keys are:
user (optional) host (requried) command (required) args (optional, arrayref) stdin_string (optional) - written to the command's STDIN
Connects the supplied filehandles to the ssh process (in batch mode).
use Net::SSH qw(sshopen2); use strict; my $user = "username"; my $host = "hostname"; my $cmd = "command"; sshopen2("$user\@$host", *READER, *WRITER, "$cmd") || die "ssh: $!"; while (<READER>) { chomp(); print "$_\n"; } close(READER); close(WRITER);
Q: How do you supply a password to connect with ssh within a perl script using the Net::SSH module?
A: You don't. Use RSA or DSA keys. See the ssh-keygen(1) manpage.
Q: My script is "leaking" ssh processes.
A: See "How do I avoid zombies on a Unix system" in perlfaq8, IPC::Open2, IPC::Open3 and "waitpid" in perlfunc.
Ivan Kohler <ivan-netssh_pod@420.am>
John Harrison <japh@in-ta.net> contributed an example for the documentation.
Martin Langhoff <martin@cwa.co.nz> contributed the ssh_cmd command, and Jeff Finucane <jeff@cmh.net> updated it and took care of the 0.04 release.
Anthony Awtrey <tony@awtrey.com> contributed a fix for those still using OpenSSH v1.
Copyright (c) 2004 Ivan Kohler. Copyright (c) 2002 Freeside Internet Services, LLC All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Not OO.
Look at IPC::Session (also fsh)
ssh-keygen(1), ssh(1), IO::File, IPC::Open2, IPC::Open3
To install Net::SSH, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::SSH
CPAN shell
perl -MCPAN -e shell install Net::SSH
For more information on module installation, please visit the detailed CPAN module installation guide.