【问题标题】:Can't seem to connect to FTPS via Atom editor Remote FTP似乎无法通过 Atom 编辑器远程 FTP 连接到 FTPS
【发布时间】:2019-12-25 00:17:10
【问题描述】:

我正在尝试通过我的 Atom 编辑器连接到我的网络服务器,但是每当我尝试使用 {"rejectUnauthorized": true,} 连接时,我都会收到以下错误:

主机名/IP 与证书的替代名称不匹配:主机:myhost.com。不在证书的替代名称中:DNS:dns.name

我可以使用以下代码正常连接:

{
    "protocol": "ftp",
    "host": "myhost.com",
    "port": 21,
    "user": "username**",
    "pass": "password**",
    "promptForPass": false,
    "remote": "/",
    "local": "",
    "secure": true,
    "secureOptions": {"rejectUnauthorized": false, "requestCert": true, "agent": false},
    "connTimeout": 10000,
    "pasvTimeout": 10000,
    "keepalive": 10000,
    "watch": [],
    "watchTimeout": 500
}

但是,根据我的阅读,“rejectUnauthorized”:false 不是一种非常聪明的文件传输方式。因为它可能导致 MITM 攻击。

我正在使用自动创建的 Let's Encrypt SSL 证书和 Siteground 进行托管。任何帮助将不胜感激。

提前致谢。

【问题讨论】:

    标签: ssl ftps


    【解决方案1】:

    如果有人像我一样来到这里寻找有关如何在使用他们的云托管计划之一时从 Atom 连接到 SiteGround 服务器的指导,我就是这样做的……

    我的本​​地工作站是 Mac。

    我正在为 Atom 使用远程 FTP 包:https://atom.io/packages/remote-ftp

    在 SiteGround、Site Tools、Devs、SSH Keys Manager 中添加 SSH 密钥。您还可以使用该页面获取私钥的副本 - 将其放入本地工作站的文本文件中。

    在 Atom 中,使用远程 FTP 包菜单创建一个 sftp 配置文件。这是我的:

    {
        "protocol": "sftp",
        "host": "example.sg-host.com",
        "port": 18765,
        "user": "u30-xxxxxxxxxx",
        "remote": "/home/u30-xxxxxxxxxx/www/example.sg-host.com",
        "local": "",
        "agent": "env",
        "privatekey": "/Path/to/local/keyfile",
        "passphrase": "the password used when you created the siteground ssh key ",
        "hosthash": "",
        "ignorehost": true,
        "connTimeout": 10000,
        "keepalive": 10000,
        "keyboardInteractive": false,
        "keyboardInteractiveForPass": false,
        "remoteCommand": "",
        "remoteShell": "",
        "watch": [],
        "watchTimeout": 500
    }
    

    困扰我一段时间的是,您需要在远程 FTP 配置文件中指定的用户是 SSH 凭据中的用户。也许这对某些人来说是显而易见的。但是我花了一段时间才意识到您在 SiteGround 中不需要 FTP 用户。 SFTP 是基于 SSH 的 FTP,因此 SSH 密钥和凭据就足够了。

    在本示例中,我使用了一个临时的 SiteGround 域名。我认为,虽然我还没有测试过,但如果你为 SiteGround 网站分配了一个域名,你会使用它作为主机。

    远程目录 /home/u30-xxxxxxxxxx/www/example.sg-host.com 是您可以找到网站文档根目录的地方,在 SiteGround 上是 public_html。

    享受吧!

    【讨论】:

      【解决方案2】:

      我正在使用自动创建的 Let's Encrypt SSL 证书和 Siteground 进行托管。任何帮助将不胜感激。

      我不知道 Siteground 运行的设置,但我的猜测是

      • 这是一个共享主机,即您没有为自己的域获得专用 IP 地址,而是与他人共享。
      • Let's Encrypt 证书仅安装用于 HTTPS(即 Web 访问)。
      • 对于 FTPS,IP 地址上使用一个证书,因此您可以得到。虽然使用 HTTPS,但通常使用 Server Name Indication (SNI) 为每个 IP 地址拥有多个证书,但对于 FTPS、SMTPS 等其他协议通常不是这种情况......

      如果我的猜测是正确的,那么这是系统上托管的所有域的共享 FTPS 服务器,并且对用户数据的访问受到用户名+密码的限制,而不是用于连接的域名。在这种情况下,您实际上不应该使用自己的域名来访问 FTPS,但您应该使用通用名称(在证书中找到),然后使用您的特定帐户登录。

      看起来这甚至被记录在案。来自Siteground FAQ: How to establish an FTP connection to your hosting account?

      FTP 主机名 - 这是托管服务器的名称。

      因此,您不应使用自己的域名,而是使用托管服务器的名称。这个名字可以在你的Account Information找到。

      【讨论】:

      • 你是一个美丽的人。感谢您的贡献。我更改为站点地面服务器名称并且它有效。但是,我的用户名是我为电子邮件设置的 user@domain.com。不是 cPanel 登录电子邮件。以防其他人试图解决此问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多