与远程环境的安全连接

Secure Shell (SSH)是用于安全登录到远程服务器和系统的常用协议。 您可以使用SSH访问远程环境,以便管理Adobe Commerce应用程序和访问远程环境日志。 Adobe仅支持使用SSH公钥的安全FTP (sFTP)连接。 不支持FTP连接。

生成SSH密钥对

在需要访问项目源代码和环境的每台计算机和工作区上创建一个SSH密钥对。 SSH密钥允许您连接到GitHub来管理源代码并连接到云服务器,而无需持续提供用户名和密码。 有关创建SSH密钥对的进一步说明,请参阅使用SSH连接到GitHub

  • 公钥 ​可安全用于访问站点、SSH和sFTP。
  • 私钥 ​在工作站上保持私有。
CAUTION
从不共享您的私钥。 ​请勿将其添加到票证、复制到聊天或附加到电子邮件。

向帐户添加SSH公钥

在云基础架构帐户上将SSH公钥添加到Adobe Commerce后,重新部署帐户上的所有活动环境以安装密钥。

您可以使用以下方法之一将SSH密钥添加到您的帐户: Cloud CLI或Cloud Console。

CLI

使用云CLI添加SSH密钥

  1. 在本地工作站上,转到您的项目目录。

  2. 登录项目:

    code language-bash
    magento-cloud login
    
  3. 添加公钥。

    code language-bash
    magento-cloud ssh-key:add ~/.ssh/id_rsa.pub
    
note tip
TIP
您可以使用Cloud CLI命令ssh-key:listssh-key:delete列出并删除SSH密钥。
控制台

使用Cloud Console添加SSH密钥

要将SSH密钥添加到新项目,请执行以下操作:

  1. 登录到Cloud Console

  2. 单击​ No SSH key。 此图标位于命令字段的右侧,当项目不包含SSH密钥时可见。

  3. 在​ 公钥 ​字段中复制并粘贴公共SSH密钥的内容。

  4. 按照其余提示操作。

要向云配置文件添加SSH密钥

  1. 登录到Cloud Console

  2. 在右上角帐户菜单中,单击​ 我的个人资料

  3. 在​ SSH密钥 ​视图中,单击​ 添加公钥

  4. 在​ 添加SSH密钥 ​表单中,为您的密钥提供​ 标题,并将公共SSH密钥粘贴到​ 密钥 ​字段中。

  5. 单击​ 保存

连接到远程环境

您可以使用magento-cloud CLI或SSH命令连接到远程环境。 magento-cloud CLI命令只能在Starter和Pro集成环境中使用。

使用Cloud CLI

登录到远程集成环境

  1. 在本地工作站上,转到您的项目目录。

  2. 列出该项目中的环境。

    code language-bash
    magento-cloud environment:list -p <project-ID>
    
  3. 使用SSH登录到远程环境。

    code language-bash
    magento-cloud ssh -p <project-ID> -e <environment-ID>
    

使用SSH命令

Cloud Console包含每个环境的Web和SSH访问命令列表。

复制SSH命令

  1. 登录到Cloud Console

  2. 从​ 所有项目 ​列表中选择一个项目。

  3. 选择环境。

  4. 单击​ SSH

  5. 在​ SSH ​选项卡中,单击“复制”按钮以将完整的SSH命令复制到剪贴板。

  6. 打开终端并粘贴SSH命令以创建连接。

    code language-bash
    ssh abcdefg123abc-branch-a12b34c--mymagento@ssh.us-2.magento.cloud
    
TIP
对于Pro暂存和生产环境,SSH命令可能如下所示:
code language-bash
ssh <node>.ent-<project-ID>-<environment>-<user-ID>@ssh.<region>.magento.com

sFTP

云基础架构上的Adobe Commerce支持使用采用SSH身份验证的sFTP(安全FTP)访问您的环境。 使用支持sFTP的SSH密钥身份验证的客户端并使用公共SSH密钥。 必须将公共SSH密钥添加到目标环境中。 对于入门级环境和专业级集成环境,您可以通过 Cloud Console添加它。

只读sFTP连接​ 不支持;默认情况下,为sFTP访问权限提供了​ 写入 ​权限。

配置sFTP时,请使用SSH访问环境命令中的信息: <project-id>-<environment-id>--<app-name>@ssh<cloud-host>

  • 用户名: SSH访问目标中@之前的所有内容。
  • 密码:您不需要sFTP密码。 sFTP访问使用SSH密钥身份验证。
  • 主机: SSH访问中@之后的所有内容。
  • 端口: 22,这是默认的SSH端口。
  • SSH ​私钥:如有必要,请向sFTP客户端提供私钥的位置。 默认情况下,私钥存储在~/.ssh目录中。

根据客户端的不同,可能需要其他选项来完成sFTP的SSH身份验证。 查看所选客户端的文档。

对于​ 入门环境和Pro集成环境,您可能还想考虑添加mount以访问特定目录。 您要将装载添加到.magento.app.yaml文件中。 有关可写目录的列表,请参阅项目结构。 此挂载点仅适用于这些环境。

对于​ Pro暂存和生产环境,如果您没有该环境的SSH访问权限,则必须提交Adobe Commerce支持票证以请求sFTP访问权限和装入点以访问特定文件夹,例如pub/media

NOTE
对于Pro暂存和生产环境,如果sFTP连接针对的是​_通用_、 ​的用户,需要将添加到云项目,则您必须提交Adobe Commerce支持票证,并附加其​ 公共 ​密钥。 从不提供您的私有SSH密钥。

SSH隧道

您可以使用SSH隧道从本地开发环境连接到服务,就像该服务在本地一样。 在隧道之前,请配置SSH

使用终端应用程序登录并发出命令。

magento-cloud login

使用验证是否打开了任何通道。

magento-cloud tunnel:list

要建立通道,您必须知道应用程序名称。 您可以使用CLI检查应用程序名称:

magento-cloud apps

设置SSH通道

magento-cloud tunnel:open -e <environment-ID> --app <app-name>

例如,要在具有名为mymagento的应用程序的项目中打开到sprint5分支的通道,请输入

magento-cloud tunnel:open -e sprint5 --app mymagento

示例响应:

SSH tunnel opened on port 30004 to relationship: redis
SSH tunnel opened on port 30005 to relationship: database
Logs are written to: /home/magento_user/.magento/tunnels.log

List tunnels with: magento-cloud tunnels
View tunnel details with: magento-cloud tunnel:info
Close tunnels with: magento-cloud tunnel:close

要显示有关通道的信息

magento-cloud tunnel:info -e <environment-ID>

连接到服务

建立SSH隧道后,您可以像在本地运行一样连接到服务。 例如,要连接到数据库,请使用以下命令:

mysql --host=127.0.0.1 --user='<database-username>' --pass='<user-password>' --database='<name>' --port='<port>'
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26