【问题标题】:Swisscom CloudFoundry with SSH keys带有 SSH 密钥的 Swisscom CloudFoundry
【发布时间】:2017-02-20 07:32:11
【问题描述】:

我尝试在 Swisscom CloudFoundry 应用程序云上安装 Wordpress。要安装它,我需要带有私钥和公钥对的 SSH(不是 cf ssh)。

我按照这里的步骤操作: https://github.com/cloudfoundry-samples/cf-ex-wordpress

这可能吗?什么是正确的值:

SSH_HOST: user@my-ssh-server.name
SSH_PATH: /home/sshfs/remote

【问题讨论】:

    标签: wordpress cloud-foundry swisscomdev


    【解决方案1】:

    这可能吗?

    这取决于您的 CF 提供商。这种运行 Wordpress 的方法要求您使用 FUSE 文件系统 (SSHFS) 将远程文件系统挂载到 Wordpress 安装的 wp-content 目录上。在最新版本的 CF 中(我不记得具体在哪里更改了),您不再被允许使用基于 FUSE 的文件系统。

    在您为此花费大量时间之前,您可能需要验证您的提供商是否仍然允许 FUSE。您可以通过简单的测试进行验证。

    1. 将任何测试应用推送给您的提供商。
    2. cf ssh 进入应用容器。
    3. 检查sshfs 二进制文件是否可用。
    4. 尝试使用sshfs 挂载远程文件系统 (man page | examples)。

    如果您可以使用上述步骤通过 SSH 成功挂载远程文件系统,那么您应该仍然可以使用该示例应用程序中描述的方法。

    如果不能,下一个最佳选择是使用允许将媒体存储在远程系统上的插件。其中大部分用于 S3。搜索 google 或 WP plugin repo,很容易找到。

    即将推出一种更好的解决方案,称为批量服务。您可以阅读更多关于此here 的信息。不过,我还没有看到任何公共 CF 提供商提供批量服务。

    什么是正确的值:

    SSH_HOST: user@my-ssh-server.name

    这应该是您的 SSH 服务器的用户名和主机名。这是存在于 CF 之外的服务器。示例:my-user@192.0.2.10 或 some-user@host.example.com。您应该能够ssh <this-value> 并在不输入密码的情况下进行连接。这样可以在您的应用启动时自动挂载该卷,而无需用户交互。

    SSH_PATH: /home/sshfs/remote

    这是您要存储 Wordpress 文件的远程服务器上的完整路径。换句话说,这个目录将被挂载为您应用的wp-content 目录。

    【讨论】:

    • 我设置了一个外部服务器并能够从我的 cf 应用程序连接到它:ssh -p 22 user@external-server.ch -i ./.ssh/sshfs. 但 sshfs 给了我一个权限错误:$ sshfs user@external-server.ch:wordpress ./test fusermount: failed to open /etc/fuse.conf: Permission denied
    • 如上所述,sshfs 需要 FUSE。默认情况下,FUSE 在 CF 中被禁用了一段时间。这取决于提供者,它是启用还是禁用。我想大多数公共提供商都不会允许这样做,因为它会带来安全风险。您遇到了错误,所以我怀疑您的提供商不允许这样做。
    • @Gruenemuetzediego_privileged_containers: false 在 Swisscom App Cloud 中。这意味着您不能使用 FUSE。请联系 Swisscom 支持为什么我们应该启用该/您的用例。我们将进行安全检查。同样在 PWS 中 FUSE 被禁用,请参阅 github.com/cloudfoundry/cf-release/issues/1106
    猜你喜欢
    • 2019-08-06
    • 2022-11-06
    • 1970-01-01
    • 2012-12-17
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    相关资源
    最近更新 更多