![curl 仅尝试对 SFTP 进行公钥认证,而不打印可用的 SSH 认证方法](https://linux22.com/image/788188/curl%20%E4%BB%85%E5%B0%9D%E8%AF%95%E5%AF%B9%20SFTP%20%E8%BF%9B%E8%A1%8C%E5%85%AC%E9%92%A5%E8%AE%A4%E8%AF%81%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%89%93%E5%8D%B0%E5%8F%AF%E7%94%A8%E7%9A%84%20SSH%20%E8%AE%A4%E8%AF%81%E6%96%B9%E6%B3%95.png)
我正在尝试使用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。