SFTP连接返回“验证取消”

时间:2016-09-02 21:20:25

标签: ide phpstorm

我正在使用PhpStorm 2016.2.1,Windows 10.我正在尝试通过SFTP连接到远程主机。凭证是正确的。当我测试连接时,我有这个错误:

Connection to 'foobar.com' failed.
Auth cancel

我可以使用FileZilla进行连接。我已经清除了PhpStorm known_hosts。在不同的机器(PC,Mac)上连接工作完美。尝试密钥对身份验证,禁用防病毒/防火墙 - 同样的错误。端口21上的传统FTP连接非常完美。

我不知道出了什么问题。有什么想法吗?

// update:2017.1:同样的问题

1 个答案:

答案 0 :(得分:3)

“验证取消”是一个SSH错误(SFTP在SSH上运行),这意味着验证者严重失败(或者所有验证失败)。

如果可能的话,在服务器的SSHd上将debug设置为max(-vvv)并查看它报告的错误。通过这种方式,您可以确定真正发生的事情。

如果做不到这些,这些是一些随机尝试:

通常这是由密钥不匹配引起的,或者是由客户端未正确实现的验证者引起的。例如,如果使用公钥或键盘交互的PHPStorm的SSH身份验证失败,并且服务器允许它,并且在此之前没有其他验证器可用,您将获得“验证取消”,并且要解决它,您需要:

  • 要么禁用服务器上失败的auth模块(除非它是最后一个,在这种情况下它不会改变任何内容)
  • 或更改客户端和/或服务器中验证者的顺序,以确保工作验证者有机会先发挥

一种可能性是在服务器和客户端上一次尝试所有身份验证器,直到找到有效的身份验证器。然后将它放在服务器上的验证器列表中。

更新

我正在尝试在PHPStorm 2017.1中设置与服务器的SFTP连接:

Settings > Building, Execution, Deployment > Deployment > Options

我创建了一个新服务器(“远程服务器”)

Connection tab:

Type: [ SFTP      ]

SFTP host: [ my host    ]
Port     : [ 22 ]
Root path: [ /var/www/default/htdocs ]
User name: [ lserni ]
Auth type: [ Password ]
Password : [ *********** ] [x] Save password

它有效(我需要提供密码)。您可以将Auth type设置为“密钥对”,在这种情况下,PHPStorm会要求提供私钥(以PuTTY或OpenSSH格式 - 这很好,因为我在Windows上使用PuTTY; here您会发现如何生成它们并在它们之间进行转换。使用密码短语将OpenSSH公钥存储在服务器中的/home/your-remote-user/.ssh/authorized_keys中。

可能的失败原因

本地known_hosts(在Windows 7中,它是C:\ Users \ YourName.ssh \ known_hosts)和服务器标识之间的身份不匹配。解决方案:删除Windows上的known_hosts文件。它将在下一次连接时正确重新创建。我通过简单地重新生成服务器密钥成功地重新创建了它。

本地PHPStorm和远程OpenSSH服务器之间的密码不匹配。我不得不破坏OpenSSH服务器来做到这一点,但它可以完成。在SSH服务器上查看指定密码的行(如果没有,那么它是默认值)。 显然我自己的PHPStorm使用AES-CBC-256,但它实际上取决于PHPStorm使用的Java版本。有关详细信息,请参阅this answer。同样,添加logging to the server SSHd应该说明一些有用的东西:

LogLevel DEBUG3
Subsystem internal-sftp -l DEBUG3

(在你完成后用#评论它们 - 系统日志调试文件将会非常庞大​​)。

如果这是问题,你会得到

no matching cipher found: client aes256-cbc server [everything but].

解决方案:设置在sshd_config中工作的共享密码。在上面的例子中,“aes256-cbc”必须出现在密码中。不幸的是,密码取决于客户端Java包,它可能会有所不同。我相信我有一个vanilla安装,它使用AES-256-CBC,所以删除aes256-cbc使它失败,并将其重新启用使其再次工作。默认情况下,某些服务器可能更喜欢CTR,而根本没有CBC,而可能会解释失败。有关详情,请参阅this