Hi

Sorry for my misunderstanding.
password_prompt may not be your case.

Jeremy.l SR <jerem...@sunrtech.net> 於 2023年4月18日 週二 上午10:00寫道:

> Hi
>
> What is your password_prompt on your remote sftp server?
> ex:
> root@192.168.56.100's password:
>
> according the document, your script will hang at the login phase if the
> wrong prompt is used.
>
>
>
>
>
> Brent Wood via beginners <beginners@perl.org> 於 2023年4月18日 週二 上午7:54寫道:
>
>> Thanks for that suggestion, it does provide more info, and using the
>> script more as you formatted it:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *say "start";$sftp = Net::SFTP::Foreign->new($host,    user => $user,
>>  password => $pass,    more => [        qw(             -v              -o
>> PreferredAuthentications=password              -o
>> PasswordAuthentication=yes              -o BatchMode=yes         )    ]*
>> *    );*
>> *say "done";*
>>
>>
>> I get this output:
>>
>> *start*
>> *...*
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *debug1: Local version string SSH-2.0-OpenSSH_8.9p1
>> Ubuntu-3ubuntu0.1debug1: Remote protocol version 2.0, remote software
>> version OpenSSH_8.9p1 Ubuntu-3ubuntu0.1debug1: compat_banner: match:
>> OpenSSH_8.9p1 Ubuntu-3ubuntu0.1 pat OpenSSH* compat 0x04000000debug1:
>> Authenticating to 127.0.0.1:22 <http://127.0.0.1:22> as 'baw'debug1:
>> SSH2_MSG_KEXINIT sentdebug1: SSH2_MSG_KEXINIT receiveddebug1: kex:
>> algorithm: curve25519-sha256debug1: kex: host key algorithm:
>> ssh-ed25519debug1: kex: server->client cipher:
>> chacha20-poly1...@openssh.com <chacha20-poly1...@openssh.com> MAC:
>> <implicit> compression: nonedebug1: kex: client->server cipher:
>> chacha20-poly1...@openssh.com <chacha20-poly1...@openssh.com> MAC:
>> <implicit> compression: nonedebug1: expecting
>> SSH2_MSG_KEX_ECDH_REPLYdebug1: SSH2_MSG_KEX_ECDH_REPLY receiveddebug1:
>> Server host key: ssh-ed25519
>> SHA256:9xuiSKoLyBrR6XdL2Ktv9Osdoq257n++/zUO0izC+7sHost key verification
>> failed.done*
>>
>> It seems to be trying to use key based authentication irrespective of the
>> -o parameters passed in. I looked for an ssh based fix & found this:
>>
>> https://superuser.com/questions/1376201/how-do-i-force-ssh-to-use-password-instead-of-key
>>
>> Which suggested the issue was possibly at the server end, but my
>> /etc/ssh/ssh_config file is set up to allow password authentication, and I
>> can ssh in directly with password only, so it does not seem that this is my
>> problem.
>>
>> As far as I can tell, it is just scripted sftp via Perl that seems to
>> fail. Even if I omit the user & password entries in the connect string,
>> Perl still gets my user as the default & never prompts for a password, just
>> gives the same message. It may be worth trying to do this with Net::SFTP
>> instead of Net::SFTP::Foreign, any advice?
>>
>>
>> Thanks again,
>>
>> Brent
>>
>>
>>
>>
>>
>> On Monday, April 17, 2023 at 10:58:49 PM GMT+12, Dermot <
>> paik...@gmail.com> wrote:
>>
>>
>> Hi,
>>
>> Can you edit the constructor to include `more => [ -v ]` so we can get
>> more feedback from the SSH connection and send the output from that.
>>
>> $sftp = Net::SFTP::Foreign->new($host,
>>         user     => $user,
>>         password => $pass,
>>         more => [
>>             qw(
>>             -v
>>             -o PreferredAuthentications=password
>>             -o PasswordAuthentication=yes
>>             -o BatchMode=yes
>>             )
>>        ]
>> )  or $sftp->error;
>>
>> The clue to what is going wrong will be in the output from ssh.
>> Thanks,
>> Dermot
>>
>> On Mon, 17 Apr 2023 at 10:13, Brent Wood via beginners <
>> beginners@perl.org> wrote:
>>
>> More detail, thanks for your time...
>>
>>
>> This is to test the Perl script on a local (Linux) system, copying a file
>> from /tmp to another directory.
>>
>> I can use command line sftp to copy a file fine with the user/password
>> connection, so there is not a problem with sftp, user/password etc on the
>> system.
>>
>> This Perl script executes without error, but hangs on $sftp = Net::...
>> (prints start, never prints done)
>>
>> If I take out the password assignment, I'm prompted for a password and it
>> then works fine. With it there, it hangs.
>>
>> Can anyone help me get this working with a password passed as a parameter?
>>
>> use Net::SFTP::Foreign;
>> use IO::Pty;
>> use feature say;
>>
>> $host = "127.0.0.1";
>> $user = "baw";
>> $pass = "......";
>>
>> say "start";
>>
>> $sftp = Net::SFTP::Foreign->new($host,
>>                     user => $user,
>>                     password => $pass,
>>                         more => [qw(-o PreferredAuthentications=password
>> -o PasswordAuthentication=yes -o BatchMode=yes)]
>>     );
>>
>> say "done";
>>
>>

Reply via email to