我正在尝试使用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,其中有curl
7.68.0-1、0.9.3-2libssh-4
和libssl1.1
1.1.1f-1。