Normally, the default is accessed by getservbyname, but Windows doesn't have SSH in the "database" accessed by getservbyname. There are three solutions:
Specify the port explicitely, as suggested in the parent post.
Upgrade to version Net::SSH::Perl version 1.27 or higher. Instead of relying entirely on getservbyname, version 1.27 and higher use 22 (hardcoded) as the port number if getservbyname fails.
Older version (<= 1.26):
my @serv = getservbyname(my $serv = $rport, 'tcp'); $rport = $serv[2]; croak "Can't map service name '$serv' to port number" unless defined $rport;
Newer version (>= 1.27):
my @serv = getservbyname(my $serv = $rport, 'tcp'); $rport = $serv[2] || 22;
Add SSH to the services "database". In windows, it's %SystemRoot%\system32\drivers\etc\services, a text file identical to unix's /etc/services. The entry to add is simply:
ssh 22/tcp # Secure Shell Login
In reply to Re^2: connecting via SSH
by ikegami
in thread connecting via SSH
by nathanvit
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |