与远程环境的安全连接
Secure Shell (SSH)是用于安全登录到远程服务器和系统的常用协议。 您可以使用SSH访问远程环境,以便管理Adobe Commerce应用程序和访问远程环境日志。 Adobe仅支持使用SSH公钥的安全FTP (sFTP)连接。 不支持FTP连接。
生成SSH密钥对
在需要访问项目源代码和环境的每台计算机和工作区上创建一个SSH密钥对。 SSH密钥允许您连接到GitHub来管理源代码并连接到云服务器,而无需持续提供用户名和密码。 有关创建SSH密钥对的进一步说明,请参阅使用SSH连接到GitHub。
- 公钥 可安全用于访问站点、SSH和sFTP。
- 私钥 在工作站上保持私有。
向帐户添加SSH公钥
在云基础架构帐户上将SSH公钥添加到Adobe Commerce后,重新部署帐户上的所有活动环境以安装密钥。
您可以使用以下方法之一将SSH密钥添加到您的帐户: Cloud CLI或Cloud Console。
使用云CLI添加SSH密钥
-
在本地工作站上,转到您的项目目录。
-
登录项目:
code language-bash magento-cloud login
-
添加公钥。
code language-bash magento-cloud ssh-key:add ~/.ssh/id_rsa.pub
note tip |
---|
TIP |
您可以使用Cloud CLI命令ssh-key:list 和ssh-key:delete 列出并删除SSH密钥。 |
使用Cloud Console添加SSH密钥
要将SSH密钥添加到新项目,请执行以下操作:
-
登录到Cloud Console。
-
单击 No SSH key。 此图标位于命令字段的右侧,当项目不包含SSH密钥时可见。
-
在 公钥 字段中复制并粘贴公共SSH密钥的内容。
-
按照其余提示操作。
要向云配置文件添加SSH密钥:
-
登录到Cloud Console。
-
在右上角帐户菜单中,单击 我的个人资料。
-
在 SSH密钥 视图中,单击 添加公钥。
-
在 添加SSH密钥 表单中,为您的密钥提供 标题,并将公共SSH密钥粘贴到 密钥 字段中。
-
单击 保存。
连接到远程环境
您可以使用magento-cloud
CLI或SSH命令连接到远程环境。 magento-cloud
CLI命令只能在Starter和Pro集成环境中使用。
使用Cloud CLI
登录到远程集成环境:
-
在本地工作站上,转到您的项目目录。
-
列出该项目中的环境。
code language-bash magento-cloud environment:list -p <project-ID>
-
使用SSH登录到远程环境。
code language-bash magento-cloud ssh -p <project-ID> -e <environment-ID>
使用SSH命令
Cloud Console包含每个环境的Web和SSH访问命令列表。
复制SSH命令:
-
登录到Cloud Console。
-
从 所有项目 列表中选择一个项目。
-
选择环境。
-
单击 SSH。
-
在 SSH 选项卡中,单击“复制”按钮以将完整的SSH命令复制到剪贴板。
-
打开终端并粘贴SSH命令以创建连接。
code language-bash ssh abcdefg123abc-branch-a12b34c--mymagento@ssh.us-2.magento.cloud
code language-bash |
---|
|
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
。
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>'