我无法从 Windows 7 SSH 到 VMWare Guest CentOS 6.2
我的笔记本电脑上有 Windows 7 64 位操作系统。在上面安装了草莓 Perl 5.16.2。我还安装了 VMWare Player 并在其上运行 CentOS 6.2。
使用我在网上找到的文章,我已经成功地从 PUTTY 无密码地 SSH 到 CentOS 6.2。
我在 CentOS 6.2 上创建了用户 perl514。使用下面的脚本,如果我使用用户名和密码登录,一切正常。但它不适用于我使用 PUTTY 随附的 SSH KEYGEN 工具创建的公钥和私钥。
下面给出的是脚本:
#!C:\strawberry\perl\bin\perl.exe
use Modern::Perl;
use Net::SSH2;
my $hostname = '192.168.247.128';
my $username = 'perl514';
my $password = 'redhat';
my $ssh2 = Net::SSH2->new();
say "Connecting to $hostname";
$ssh2->connect("$hostname") || die "PROBELM - $!";
#$ssh2->auth_password("$username","$password") || die "Username/Password not #right";#COMMENTED OUT. This Works. Stuff given below does not work.
$ssh2->auth_publickey ("perl514", "C:\\Users\\winuser\\Documents\\perl\\work\\putty_priv.ppk",
"C:\\Users\\winuser\\Documents\\perl\\work\\public.pub") || die "ERROR", $ssh2->error;
my $chan = $ssh2->channel();
$chan->blocking(0);
$chan->exec('ls -la');
while (<$chan>){ print }
我收到以下错误:
Connecting to 192.168.247.128
ERROR-19LIBSSH2_ERROR_PUBLICKEY_UNVERIFIEDInvalid public key at ssh2.pl line 17.
使用用户名和密码,它可以正常工作。但不是用公钥和私钥。
我很确定我在某个地方出错了。请帮助我。