PHPStorm - 无法连接到 FTPS 服务器

PHPStorm - Could not connect to FTPS server

我不知道如何在 PHPStorm 上使用 FTPS 连接到我的 Web 服务器。

我尝试激活被动模式始终使用 LIST 命令,但没有任何效果。如果 PHPStorm 无法连接到 ftp 服务器,FileZilla 可以并正常工作。

有人知道我必须做什么吗?

这是日志:

2015-11-26 16:03:51,105 [  66041]  DEBUG - t.connections.RemoteConnection - Opening connection to ftps://my-server.com:21/ 
2015-11-26 16:03:51,148 [  66084]  DEBUG - ains.plugins.webDeployment.ftp - 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 16:03. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity. 
2015-11-26 16:03:51,148 [  66084]  DEBUG - ains.plugins.webDeployment.ftp - AUTH TLS 
2015-11-26 16:03:51,169 [  66105]  DEBUG - ains.plugins.webDeployment.ftp - 234 AUTH TLS OK. 
2015-11-26 16:03:51,198 [  66134]   WARN - t.connections.RemoteConnection - Retrying connecting to ftps://my-server.com:21/: 1 iterations 
org.apache.commons.vfs2.FileSystemException: Could not connect to FTPS server on "my-server.com".
    at org.apache.commons.vfs2.provider.ftp.FtpClientFactory$ConnectionFactory.createConnection(FtpClientFactory.java:283)
    at org.apache.commons.vfs2.provider.ftps.FtpsClientFactory.createConnection(FtpsClientFactory.java:59)
    at org.apache.commons.vfs2.provider.ftps.FtpsClientWrapper.createClient(FtpsClientWrapper.java:48)
    at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.createClient(FTPClientWrapper.java:80)
    at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.getFtpClient(FTPClientWrapper.java:105)
    at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.<init>(FTPClientWrapper.java:58)
    at org.apache.commons.vfs2.provider.ftps.FtpsClientWrapper.<init>(FtpsClientWrapper.java:41)
    at org.apache.commons.vfs2.provider.ftps.FtpsFileProvider.doCreateFileSystem(FtpsFileProvider.java:52)
    at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.getFileSystem(AbstractOriginatingFileProvider.java:102)
    at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:80)
    at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:64)
    at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:790)
    at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:712)
    at com.jetbrains.plugins.webDeployment.connections.RemoteConnectionPool.createConnection(RemoteConnectionPool.java:159)
    at com.jetbrains.plugins.webDeployment.connections.RemoteConnectionManager.openConnection(RemoteConnectionManager.java:103)
    at com.jetbrains.plugins.webDeployment.ui.remotebrowser.ServerTreeContext.getConnection(ServerTreeContext.java:88)
    at com.jetbrains.plugins.webDeployment.ui.remotebrowser.ServerTreeNode.computeFile(ServerTreeNode.java:271)
    at com.jetbrains.plugins.webDeployment.ui.remotebrowser.ServerTreeNode.getChildren(ServerTreeNode.java:135)
    at com.intellij.ui.treeStructure.SimpleTreeStructure.getChildElements(SimpleTreeStructure.java:25)
    at com.intellij.ide.util.treeView.AbstractTreeUi.perform(AbstractTreeUi.java:1624)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1830)
    at com.intellij.ide.util.treeView.AbstractTreeUi.getChildrenFor(AbstractTreeUi.java:1621)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access00(AbstractTreeUi.java:62)
    at com.intellij.ide.util.treeView.AbstractTreeUi.perform(AbstractTreeUi.java:2708)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1830)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access00(AbstractTreeUi.java:62)
    at com.intellij.ide.util.treeView.AbstractTreeUi.perform(AbstractTreeUi.java:3386)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.jetbrains.plugins.webDeployment.ui.remotebrowser.WebServerTreeBuilder.runBackgroundLoading(WebServerTreeBuilder.java:90)
    at com.intellij.ide.util.treeView.AbstractTreeUi.perform(AbstractTreeUi.java:3377)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1830)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access00(AbstractTreeUi.java:62)
    at com.intellij.ide.util.treeView.AbstractTreeUi.perform(AbstractTreeUi.java:3442)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.intellij.util.concurrency.WorkerThread.run(WorkerThread.java:108)
    at com.intellij.openapi.application.impl.ApplicationImpl.run(ApplicationImpl.java:400)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
    at org.jetbrains.ide.PooledThreadExecutor.run(PooledThreadExecutor.java:56)
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1991)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1098)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1344)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1371)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)
    at org.apache.commons.net.ftp.FTPSClient.sslNegotiation(FTPSClient.java:269)
    at org.apache.commons.net.ftp.FTPSClient._connectAction_(FTPSClient.java:211)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:183)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:203)
    at org.apache.commons.vfs2.provider.ftp.FtpClientFactory$ConnectionFactory.createConnection(FtpClientFactory.java:207)
    ... 44 more
2015-11-26 16:03:51,198 [  66134]   WARN - i.remotebrowser.ServerTreeNode - Could not connect to FTPS server on "my-server.com". 
org.apache.commons.vfs2.FileSystemException: Could not connect to FTPS server on "my-server.com".
    at org.apache.commons.vfs2.provider.ftp.FtpClientFactory$ConnectionFactory.createConnection(FtpClientFactory.java:283)
    at org.apache.commons.vfs2.provider.ftps.FtpsClientFactory.createConnection(FtpsClientFactory.java:59)
    at org.apache.commons.vfs2.provider.ftps.FtpsClientWrapper.createClient(FtpsClientWrapper.java:48)
    at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.createClient(FTPClientWrapper.java:80)
    at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.getFtpClient(FTPClientWrapper.java:105)
    at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.<init>(FTPClientWrapper.java:58)
    at org.apache.commons.vfs2.provider.ftps.FtpsClientWrapper.<init>(FtpsClientWrapper.java:41)
    at org.apache.commons.vfs2.provider.ftps.FtpsFileProvider.doCreateFileSystem(FtpsFileProvider.java:52)
    at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.getFileSystem(AbstractOriginatingFileProvider.java:102)
    at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:80)
    at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:64)
    at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:790)
    at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:712)
    at com.jetbrains.plugins.webDeployment.connections.RemoteConnectionPool.createConnection(RemoteConnectionPool.java:159)
    at com.jetbrains.plugins.webDeployment.connections.RemoteConnectionManager.openConnection(RemoteConnectionManager.java:103)
    at com.jetbrains.plugins.webDeployment.ui.remotebrowser.ServerTreeContext.getConnection(ServerTreeContext.java:88)
    at com.jetbrains.plugins.webDeployment.ui.remotebrowser.ServerTreeNode.computeFile(ServerTreeNode.java:271)
    at com.jetbrains.plugins.webDeployment.ui.remotebrowser.ServerTreeNode.getChildren(ServerTreeNode.java:135)
    at com.intellij.ui.treeStructure.SimpleTreeStructure.getChildElements(SimpleTreeStructure.java:25)
    at com.intellij.ide.util.treeView.AbstractTreeUi.perform(AbstractTreeUi.java:1624)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1830)
    at com.intellij.ide.util.treeView.AbstractTreeUi.getChildrenFor(AbstractTreeUi.java:1621)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access00(AbstractTreeUi.java:62)
    at com.intellij.ide.util.treeView.AbstractTreeUi.perform(AbstractTreeUi.java:2708)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1830)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access00(AbstractTreeUi.java:62)
    at com.intellij.ide.util.treeView.AbstractTreeUi.perform(AbstractTreeUi.java:3386)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.jetbrains.plugins.webDeployment.ui.remotebrowser.WebServerTreeBuilder.runBackgroundLoading(WebServerTreeBuilder.java:90)
    at com.intellij.ide.util.treeView.AbstractTreeUi.perform(AbstractTreeUi.java:3377)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1830)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access00(AbstractTreeUi.java:62)
    at com.intellij.ide.util.treeView.AbstractTreeUi.perform(AbstractTreeUi.java:3442)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.intellij.util.concurrency.WorkerThread.run(WorkerThread.java:108)
    at com.intellij.openapi.application.impl.ApplicationImpl.run(ApplicationImpl.java:400)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
    at org.jetbrains.ide.PooledThreadExecutor.run(PooledThreadExecutor.java:56)
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1991)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1098)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1344)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1371)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)
    at org.apache.commons.net.ftp.FTPSClient.sslNegotiation(FTPSClient.java:269)
    at org.apache.commons.net.ftp.FTPSClient._connectAction_(FTPSClient.java:211)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:183)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:203)
    at org.apache.commons.vfs2.provider.ftp.FtpClientFactory$ConnectionFactory.createConnection(FtpClientFactory.java:207)
    ... 44 more

我遇到了完全相同的问题。 我将类型从 "FTPS" 切换为 "FTP"。在此之后,我点击了 "Advanced options..." 并选择了 "Passive mode" "Always use LIST command".

在此之后,连接运行良好。

这对我来说是个谜,为什么我可以连接到选择 FTP 的 FTPS 主机。

PhpStorm 版本:2016.2.1

我遇到了同样的问题。 转到文件 -> 设置... -> 部署。 Select FTP 连接并单击高级选项...按钮。勾选被动模式然后保存。 按照路径: