当前位置: 动力学知识库 > 问答 > 编程问答 >

amazon web services - Using Net::SSH::Perl with public key

问题描述:

I want to gain access to an AWS Instance using Perl. I can access the instance from commandline like this:

ssh -i my-key-pair.pem [email protected]**-***-***-***.us-west-2.compute.amazonaws.com

but my code doesn't work:

#! usr/bin/perl

use Net::SSH::Perl;

$user = "ubuntu";

$host = "ec2-**-***-***-***.us-west-2.compute.amazonaws.com";

@KEYFILE = "my-key-pair.pem";

$ssh = Net::SSH::Perl->new($host, debug=>1, identity_files=>\@KEYFILE);

$ssh->login($user);

As I mentioned I'm new to this concept, it might be a simple solution, I couldn't find a solution online, hopefully you can help me.

the output is this:

[email protected]:~/Desktop$ perl remotecomp

atakanarikanhplaptop: Reading configuration data /home/atakanarikan/.ssh/config

atakanarikanhplaptop: Reading configuration data /etc/ssh_config

atakanarikanhplaptop: Connecting to ec2-**-***-***-***.us-west-2.compute.amazonaws.com, port 22.

atakanarikanhplaptop: Remote version string: SSH-2.0-OpenSSH_6.6p1 Ubuntu-2ubuntu1

atakanarikanhplaptop: Remote protocol version 2.0, remote software version OpenSSH_6.6p1 Ubuntu-2ubuntu1

atakanarikanhplaptop: Net::SSH::Perl Version 1.37, protocol version 2.0.

.takanarikanhplaptop: No compat match: OpenSSH_6.6p1 Ubuntu-2ubuntu1

atakanarikanhplaptop: Connection established.

atakanarikanhplaptop: Sent key-exchange init (KEXINIT), wait response.

atakanarikanhplaptop: Algorithms, c->s: 3des-cbc hmac-sha1 none

atakanarikanhplaptop: Algorithms, s->c: 3des-cbc hmac-sha1 none

atakanarikanhplaptop: Entering Diffie-Hellman Group 1 key exchange.

atakanarikanhplaptop: Sent DH public key, waiting for reply.

atakanarikanhplaptop: Received host key, type 'ssh-dss'.

atakanarikanhplaptop: Host 'ec2-**-***-***-***.us-west-2.compute.amazonaws.com' is known and matches the host key.

atakanarikanhplaptop: Computing shared secret key.

atakanarikanhplaptop: Verifying server signature.

atakanarikanhplaptop: Waiting for NEWKEYS message.

atakanarikanhplaptop: Send NEWKEYS.

atakanarikanhplaptop: Enabling encryption/MAC/compression.

atakanarikanhplaptop: Sending request for user-authentication service.

atakanarikanhplaptop: Service accepted: ssh-userauth.

atakanarikanhplaptop: Trying empty user-authentication request.

atakanarikanhplaptop: Authentication methods that can continue: publickey.

atakanarikanhplaptop: Next method to try is publickey.

atakanarikanhplaptop: Trying pubkey authentication with key file 'my-key-pair.pem'

atakanarikanhplaptop: Will not query passphrase for 'my-key-pair.pem' in batch mode.

atakanarikanhplaptop: Loading private key failed.

Permission denied at remotecomp line 8.

网友答案:

These two lines

atakanarikanhplaptop: Will not query passphrase for 'my-key-pair.pem' in batch mode.
atakanarikanhplaptop: Loading private key failed.

seem to point to the issue. Your private key is protected by a passphrase, and when you try to use it, it wants to ask you for it, but can't in batch mode.

I think you're going to have to remove the passphrase from your private key to use this module. There are many tools, including OpenSSL, that can do that for you. Just search the documentation for removing a passphrase from a key.

分享给朋友:
您可能感兴趣的文章:
随机阅读: