averlon has asked for the wisdom of the Perl Monks concerning the following question:

I am trying to get an ssh-connection established.

$av_obj_SSH = Net::SSH2->new();

works - easy!

$av_obj_SSH->connect($computername);

works as well!

$av_obj_SSH->auth_publickey($ENV{USER},"$ENV{HOME}/.ssh/t_zertifikat_a_test.pub","$ENV{HOME}/.ssh/t_zertifikat_a_test.ppk")

gets error:

Invalid key data, not base64 encoded (-16 LIBSSH2_ERROR_FILE) at

I have generated a keypare by puttygen!

The file stored by puttygen for the public key (...pub):

---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-for-test-purposes" AAAAB3NzaC1yc2EAAAADAQABAAABAQCV5LKBeYj97VRCpS0JDzErTSIMV1xjaVla Notc1kphN7QEWMT1WDWKtYlSIBFxQoAfavKfXHsVR/ugvjuYrbjee6IxiU3r43TT +enudXpklfLwzv8fibLy0c1pLepyPzxBGSNN2FL+Z+BnGjBprxr+b0x/Q5xLulB8 KEZPWGhYPu1seV5ShVQDEvAoHiTj4sixv07u4OCyveSSrIv+gdAEZAObb589eC5I sBGc/LSJnL9DCFeqNbUsZ9eGNUw+pD+KtEaUwsyWPr39sb1wnZOB1IstnLWGX5Ba a/TgqsyJv+zt6PfCaizj7gKZklJdoUXaeQkeEnGj/Th0W3hzMSrp ---- END SSH2 PUBLIC KEY ----

The file generated by puttygen for the private key (...ppk):

PuTTY-User-Key-File-3: ssh-rsa Encryption: none Comment: rsa-key-for-test-purposes Public-Lines: 6 AAAAB3NzaC1yc2EAAAADAQABAAABAQCV5LKBeYj97VRCpS0JDzErTSIMV1xjaVla Notc1kphN7QEWMT1WDWKtYlSIBFxQoAfavKfXHsVR/ugvjuYrbjee6IxiU3r43TT +enudXpklfLwzv8fibLy0c1pLepyPzxBGSNN2FL+Z+BnGjBprxr+b0x/Q5xLulB8 KEZPWGhYPu1seV5ShVQDEvAoHiTj4sixv07u4OCyveSSrIv+gdAEZAObb589eC5I sBGc/LSJnL9DCFeqNbUsZ9eGNUw+pD+KtEaUwsyWPr39sb1wnZOB1IstnLWGX5Ba a/TgqsyJv+zt6PfCaizj7gKZklJdoUXaeQkeEnGj/Th0W3hzMSrp Private-Lines: 14 AAABAHTpnWWpkvVkIH2e8gKH6/T3Q6BWn4QWjo/zzT2LExbC6NEfH/ixZYmcUNBS nOg3U1GuDDHKY2JU8+oLltZeYbx+uCJlEvbzQZN48UKCNQWxg3zaJ1nFAGOuysXH /34+3lN0NPopyYoPIZOpdKtp3ecojoURCh5y4wYEL9sBfNmegK7h71DTI9nmtyEh GBZ7WqgPlXhO2HG4HciKouAuQy6j2aWmbIOj0lXxgw/DOzffDrtAv5lj9tiOv9MM ubKxOueks3+Nl1jGSahTkuliy1rBgE/+bwxdjkS+seHwxa307MQMfS04YwqGlNNJ vRw3qeQFGK85lCIYTWWpJJhRe/UAAACBANYMY0hdAc1r/3W2cJQ2xWAB38PJmAK1 l2BSOlx7ziXfjBvLH7kvLbsUSuTWJOk1nEwfg0iQD+73vucbYAh1LPenKKXQTk05 S+MATYlJnnvJ9J06MxNl0hBihUUaQmq1kIZOw6P75eT2Mpvptnpmf02I9kTLWT1w HNNYGloSXDlTAAAAgQCzRWjxsQKsaUdtZ1hZ1Z5Ky+W+9c5cGwGMlkNXslVVu4ma Jns/g/mUPADY5PXWinGR87/68Zqgox76g8K+/A7tvQPSd3mOY/81UrvN9j0nkPKE 8CibkUmXdHaWNd16lyDPAEHIQXfdUj3qezNZNckPcUW5cutZMbnTMaqX5yd3UwAA AIEAiu5YanwXI4Ex+MYHr3Knk6opTMaQIZrq0eqh4akuhCas9s02xQZiNweccWMx YDZpt0+xliHcWT9JV2uqKe4TyvrFDQhl8inlwEJomRi9829mQ4Ns93+EoYTcFo2I ORA/pb19k71pY4X+IFRB3nZBOFcx3HkSgOHr6BSXU4BJUEQ= Private-MAC: 70182c36f26b637f19ef0f3c203734177b34652c88ff84705a23c660d +8e373bf

The code to paste into the authorized_keys file on the target system:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCV5LKBeYj97VRCpS0JDzErTSIMV1xjaV +laNotc1kphN7QEWMT1WDWKtYlSIBFxQoAfavKfXHsVR/ugvjuYrbjee6IxiU3r43TT+en +udXpklfLwzv8fibLy0c1pLepyPzxBGSNN2FL+Z+BnGjBprxr+b0x/Q5xLulB8KEZPWGhY +Pu1seV5ShVQDEvAoHiTj4sixv07u4OCyveSSrIv+gdAEZAObb589eC5IsBGc/LSJnL9DC +FeqNbUsZ9eGNUw+pD+KtEaUwsyWPr39sb1wnZOB1IstnLWGX5Baa/TgqsyJv+zt6PfCai +zj7gKZklJdoUXaeQkeEnGj/Th0W3hzMSrp rsa-key-for-test-purposes

The keys shown here are only generated for the test purposes and not used in production mode!

What can I do to get it working?

Regards Kallewirsch

Replies are listed 'Best First'.
Re: Net::SSH2 not base64 encoded
by Corion (Patriarch) on Dec 11, 2024 at 09:26 UTC

    I think the keys generated by puttygen are not directly usable for SSH.

    The following gist claims a way to convert PuTTy key files to things SSH can use: gist.

      the keys generated by puttygen are not directly usable for SSH

      Correct. But PuTTYgen, the key generator, part of PuTTY, can also convert PuTTY keys to other formats. The format of the PuTTY keys is documented in https://the.earth.li/~sgtatham/putty/0.82/htmldoc/AppendixC.html, so you could extract all required data and convert to other formats in a different tool.

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

      I have now changed the key-files.

      Public-Key:

      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCV5LKBeYj97VRCpS0JDzErTSIMV1xjaV +laNotc1kphN7QEWMT1WDWKtYlSIBFxQoAfavKfXHsVR/ugvjuYrbjee6IxiU3r43TT+en +udXpklfLwzv8fibLy0c1pLepyPzxBGSNN2FL+Z+BnGjBprxr+b0x/Q5xLulB8KEZPWGhY +Pu1seV5ShVQDEvAoHiTj4sixv07u4OCyveSSrIv+gdAEZAObb589eC5IsBGc/LSJnL9DC +FeqNbUsZ9eGNUw+pD+KtEaUwsyWPr39sb1wnZOB1IstnLWGX5Baa/TgqsyJv+zt6PfCai +zj7gKZklJdoUXaeQkeEnGj/Th0W3hzMSrp rsa-key-for-test-purposes

      Private-Key:

      -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAleSygXmI/e1UQqUtCQ8xK00iDFdcY2lZWjaLXNZKYTe0BFjE 9Vg1irWJUiARcUKAH2ryn1x7FUf7oL47mK243nuiMYlN6+N00/np7nV6ZJXy8M7/ H4my8tHNaS3qcj88QRkjTdhS/mfgZxowaa8a/m9Mf0OcS7pQfChGT1hoWD7tbHle UoVUAxLwKB4k4+LIsb9O7uDgsr3kkqyL/oHQBGQDm2+fPXguSLARnPy0iZy/QwhX qjW1LGfXhjVMPqQ/irRGlMLMlj69/bG9cJ2TgdSLLZy1hl+QWmv04KrMib/s7ej3 wmos4+4CmZJSXaFF2nkJHhJxo/04dFt4czEq6QIDAQABAoIBAHTpnWWpkvVkIH2e 8gKH6/T3Q6BWn4QWjo/zzT2LExbC6NEfH/ixZYmcUNBSnOg3U1GuDDHKY2JU8+oL ltZeYbx+uCJlEvbzQZN48UKCNQWxg3zaJ1nFAGOuysXH/34+3lN0NPopyYoPIZOp dKtp3ecojoURCh5y4wYEL9sBfNmegK7h71DTI9nmtyEhGBZ7WqgPlXhO2HG4HciK ouAuQy6j2aWmbIOj0lXxgw/DOzffDrtAv5lj9tiOv9MMubKxOueks3+Nl1jGSahT kuliy1rBgE/+bwxdjkS+seHwxa307MQMfS04YwqGlNNJvRw3qeQFGK85lCIYTWWp JJhRe/UCgYEA1gxjSF0BzWv/dbZwlDbFYAHfw8mYArWXYFI6XHvOJd+MG8sfuS8t uxRK5NYk6TWcTB+DSJAP7ve+5xtgCHUs96copdBOTTlL4wBNiUmee8n0nTozE2XS EGKFRRpCarWQhk7Do/vl5PYym+m2emZ/TYj2RMtZPXAc01gaWhJcOVMCgYEAs0Vo 8bECrGlHbWdYWdWeSsvlvvXOXBsBjJZDV7JVVbuJmiZ7P4P5lDwA2OT11opxkfO/ +vGaoKMe+oPCvvwO7b0D0nd5jmP/NVK7zfY9J5DyhPAom5FJl3R2ljXdepcgzwBB yEF33VI96nszWTXJD3FFuXLrWTG50zGql+cnd1MCgYAbOdgnDC1+g44q2tnXAGB6 pcJglPPQ5GgsyEjEGrtN9fFMV7nhRC787MfZ86MeRsNqq1d3k1tzee++Va0RZlYh 6hExhh1vlSoh5Zf3LnYKKNYEabK1dO4TR3TMJVrtV8raSop4AUJsrSQi0Md1KjRn GFS6y2K+fdQszbgMXOl+IQKBgE2u4zXwfXcWu+P1p3xuLAS/bFQekgipjzdLmezz kzTuakdJK5kvaERK6BcUyE7qeSJE3MkyTs4TQYZO+GHoOdPdVz2plhwUyu9hZY5v iLqPffgLVZ1sDNa7mfOnbc0Eliv9MYREkltumvPz5SFgRDsT26Hr4X4qJRsWZ5Uh jqGPAoGBAIruWGp8FyOBMfjGB69yp5OqKUzGkCGa6tHqoeGpLoQmrPbNNsUGYjcH nHFjMWA2abdPsZYh3Fk/SVdrqinuE8r6xQ0IZfIp5cBCaJkYvfNvZkODbPd/hKGE 3BaNiDkQP6W9fZO9aWOF/iBUQd52QThXMdx5EoDh6+gUl1OASVBE -----END RSA PRIVATE KEY-----

      But I get the error:

      Username/PublicKey combination invalid (-18 LIBSSH2_ERROR_AUTHENTICATION_FAILED)

      When trying the same connection via ssh-command from the shell, it works!

      Any additional hints?

      Regards Kallewirsch

        This sounds like it is an authentication error from the remote end. Somehow, the remote end thinks that "you" ($ENV{USER}) are not the one connected to the public+private keypair.

        Maybe $ENV{USER} is different from your expectations, or your program does something wrong.

        I would look at what ssh does by connecting using ssh -i ~/.ssh/the-new-private-key -v -v -v and comparing that with my expectations, and very closely comparing that with the output of your program with $ssh2->trace(-1);.

Re: Net::SSH2 not base64 encoded
by choroba (Cardinal) on Dec 11, 2024 at 10:18 UTC
    It seems the whole question went into the signature area. Many monks have the signature area styled to be small and non-distracting. For example myself, I don't see much from your question at all.

    map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]