gpt4 book ai didi

linux - Net::SSH2 从 Windows 7 到 VMWare Guest CentOS 6.2 的 ssh 不使用公钥和私钥

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:05:55 26 4
gpt4 key购买 nike

我无法从 Windows 7 通过 ssh 连接到 VMWare Guest CentOS 6.2

我的笔记本电脑上装有 Windows 7 64 位操作系统。在其上安装了 Strawberry 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.

有了用户名和密码,就可以正常工作了。但不是用公钥和私钥。

我很确定我哪里出错了。请帮助我。

最佳答案

Net::SSH2 要求 key 文件采用与 PuTTY 使用的格式不同的 OpenSSH 格式。

您应该能够使用 PuTTY GUI 转换为 OpenSSH 格式。例如,参见 How to convert SSH keypairs generated using PuttyGen(Windows) into key-pairs used by ssh-agent and KeyChain(Linux) .

更新:

详细转换步骤:

  • 打开 PuTTY key 生成器
  • 将私钥加载进去
  • 在转换菜单上,以 OpenSSH 格式导出私钥
  • 从“用于粘贴到 OpenSSH authorized_keys 文件中的公钥”下的框中选择并用鼠标复制 OpenSSH 公钥,然后将其粘贴到与您的文件同名的新文件中已经给私钥附加了“.pub”。

关于linux - Net::SSH2 从 Windows 7 到 VMWare Guest CentOS 6.2 的 ssh 不使用公钥和私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13566913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com