[英]Net::SSH2 to ssh from Windows 7 to VMWare Guest CentOS 6.2 not working with Public and Private keys
我無法從Windows 7切換到VMWare Guest CentOS 6.2
我的筆記本電腦上裝有Windows 7 64位操作系統。 在上面安裝了草莓Perl 5.16.2。 我還安裝了VMWare Player並在其上運行CentOS 6.2。
使用我在網上找到的文章,我已經成功地從UTTY到SSH無需密碼就可以從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期望密鑰文件采用與PuTTY使用的格式不同的OpenSSH格式。
您應該能夠使用PuTTY GUI轉換為OpenSSH格式。 例如,請參閱如何將使用PuttyGen(Windows)生成的SSH密鑰對轉換為ssh-agent和KeyChain(Linux)使用的密鑰對 。
更新 :
詳細的轉換步驟:
很抱歉回答問題而不是發表評論,但是評論部分不允許我在其他步驟中加一個步驟。 我檢查了您的鏈接,這是我的理解:
1.Open PuttyGen
2.Click Load
3.Load your private key
4.Go to Conversions->Export OpenSSH and export your private key
我知道上面的步驟將在Windows Box上運行,但是下面的步驟呢? 它們要在CentOS Guest上運行嗎? 不知道我是否必須在CentOS 6.2 Guest OS內復制由膩子創建的私鑰。 另一個問題是由Puttygen創建的私鑰同時具有私鑰和公鑰。
5.Copy your private key to ~/.ssh/id_dsa (or id_rsa).
6.Create the RFC 4716 version of the public key using ssh-keygen
ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
7.Convert the RFC 4716 version of the public key to the OpenSSH format:
ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
我這樣做的原因是,一旦此測試設置成功,我將使用類似的方法登錄一些NAS陣列(基於Linux)以運行一些報告。 因此提出了問題。
我沒有在CentOS vm上安裝ssh服務器。 安裝ssh服務器后,它可以正常工作。
yum -y install openssh-server openssh-clients
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.