curl 仅尝试对 SFTP 进行公钥认证,而不打印可用的 SSH 认证方法

curl 仅尝试对 SFTP 进行公钥认证,而不打印可用的 SSH 认证方法

我正在尝试使用curl连接到 SFTP 服务器。该服务器仅接受密码验证。当我尝试连接时,curl仅尝试公钥验证。

$ curl --verbose --insecure 'sftp://exampleuser:[email protected]:2020/test.txt'
*   Trying 100.100.70.70:2020...
* TCP_NODELAY set
* Connected to sftp.example.com (100.100.70.70) port 2020 (#0)
* User: exampleuser
* Authentication using SSH public key file
* Authentication failure
* Closing connection 0
curl: (67) Authentication failure

我尝试了很多方法来强制它使用密码验证,例如:

$ curl --verbose --insecure --user 'exampleuser:examplepass' --key '' --pubkey '' 'sftp://sftp.example.com:2020/test.txt'
*   Trying 100.100.70.70:2020...
* TCP_NODELAY set
* Connected to sftp.example.com (100.100.70.70) port 2020 (#0)
* User: exampleuser
* Known hosts: /home/example/.ssh/known_hosts
* Could not load public key file
* Authentication using SSH public key file
* Could not load private key file
* Closing connection 0
curl: (67) Could not load public key file

我确实知道用户名和密码有效。我可以成功sftp连接到服务器。

我觉得很奇怪,curl没有打印出任何有关 SSH 身份验证方法的消息,而我在其他地方看到过。也许这是一个线索?

SSH authentication methods available: password,publickey

在我的这种情况下,有什么办法可以解决问题吗curl?或者诊断为什么它不尝试密码验证?

我正在运行 Ubuntu 20.04.5 LTS,其中有curl7.68.0-1、0.9.3-2libssh-4libssl1.11.1.1f-1。

相关内容