授权 SSH 文件传输协议 (SFTP) 客户端访问 Azure Blob 存储

本文介绍如何为 SFTP 客户端授权访问,以便可以使用 SFTP 客户端安全连接到 Azure 存储帐户的 Blob 存储终结点。

若要详细了解 Azure Blob 存储中的 SFTP 支持,请参阅 Azure Blob 存储中的 SSH 文件传输协议 (SFTP)

先决条件

创建本地用户

Azure 存储不支持使用共享访问签名 (SAS) 或 Microsoft Entra 身份验证来访问 SFTP 终结点。 必须改用称作“本地用户”的标识,可以使用 Azure 生成的密码或安全外壳 (SSH) 密钥对来保护该标识。 若要向连接客户端授予访问权限,存储帐户必须具有与该密码或密钥对关联的标识。 该标识称为本地用户。

本部分介绍如何创建本地用户,选择身份验证方法,以及为该本地用户分配权限。

若要详细了解 SFTP 权限模型,请参阅 SFTP 权限模型

提示

本部分演示如何为现有存储帐户配置本地用户。 若要查看在创建帐户时配置本地用户的 Azure 资源管理器模板,请参阅在 Azure 上使用 SFTP 协议创建可访问的 Azure 存储帐户和 Blob 容器

选择身份验证方法

可以使用密码或安全外壳 (SSH) 公钥-私钥对,对从 SFTP 客户端连接的本地用户进行身份验证。

重要

虽然可以启用这两种身份验证形式,但 SFTP 客户端只能使用其中的一种形式进行连接。 不支持多重身份验证 - 这种方法需要有效的密码和有效的公钥/私钥对才能成功完成身份验证。

  1. Azure 门户中导航到存储帐户。

  2. 在“设置”下,依次选择“SFTP”、“添加本地用户” 。

    “添加本地用户”按钮的屏幕截图。

  3. 在“添加本地用户”配置窗格中添加用户名,然后选择要与此本地用户关联的身份验证方法。 可以关联密码和/或 SSH 密钥。

    如果选择“SSH 密码”,则在完成“添加本地用户”配置窗格中的所有步骤后,密码就会显示。 SSH 密码由 Azure 生成,长度至少为 32 个字符。

    如果选择“SSH 密钥对”,请选择“公钥源”以指定密钥源。

    “本地用户配置”窗格的屏幕截图。

    下表描述了每个密钥源选项:

    选项 指南
    生成新的密钥对 使用此选项可以创建新的公钥/私钥对。 公钥以你提供的密钥名称存储在 Azure 中。 成功添加本地用户后,可以下载私钥。
    使用 Azure 中存储的现有密钥 若要使用已存储在 Azure 中的公钥,请使用此选项。 若要在 Azure 中查找现有密钥,请参阅列出密钥。 当 SFTP 客户端连接到 Azure Blob 存储时,这些客户端需要提供与此公钥关联的私钥。
    使用现有公钥 若要上传存储在 Azure 外部的公钥,请使用此选项。 如果你没有公钥,但想要在 Azure 外部生成一个公钥,请参阅使用 ssh-keygen 生成密钥

    重要

    仅支持 OpenSSH 格式的公钥。 提供的密钥必须使用此格式:<key type> <key data>。 例如,RSA 密钥类似于:ssh-rsa AAAAB3N...。 如果密钥采用另一种格式,你可以使用 ssh-keygen 之类的工具将其转换为 OpenSSH 格式。

  4. 选择“下一步”打开配置窗格的“权限”选项卡

授予对容器的权限

选择要对哪个容器授予访问权限,以及要提供的访问级别。 这些权限适用于容器中的所有目录和子目录。 若要详细了解每个容器权限,请参阅容器权限

如果要在文件和目录级别授权访问,可以启用 ACL 授权。 此功能目前以预览版提供,只能使用 Azure 门户来启用。

  1. 在“权限”选项卡中,选择要提供给此本地用户使用的容器。 然后,选择要允许此本地用户执行的操作类型。

    “权限”选项卡的屏幕截图。

    重要

    本地用户必须至少拥有一个容器权限,或该容器的主目录的 ACL 权限。 否则,尝试连接到该容器将会失败。

  2. 如果你要使用与此容器中的文件和目录关联的访问控制列表 (ACL) 来授权访问,请选中“允许 ACL 授权”复选框。 若要详细了解如何使用 ACL 来为 SFTP 客户端授权,请参阅 ACL

    还可以通过将此本地用户分配到组 ID,将其添加到组中。 该 ID 可以是所需的任何编号或编号方案。 通过对用户进行分组,可以添加和删除用户,而无需将 ACL 重新应用于整个目录结构。 只需在组中添加或删除用户即可。

    组 ID 和 ACL 授权复选框的屏幕截图。

    注意

    本地用户的用户 ID 会自动生成。 无法修改此 ID,但创建本地用户后,可以通过在“编辑本地用户”窗格中重新打开该用户来查看该 ID

  3. 在“主目录”编辑框中,键入容器的名称,或者用作与此本地用户关联的默认位置的目录路径(包括容器名称,例如 mycontainer/mydirectory

    若要详细了解主目录,请参阅主目录

  4. 选择“添加”按钮以添加本地用户。

    如果启用了密码身份验证,则在添加本地用户后,Azure 生成的密码将显示在对话框中。

    重要

    以后不再可以检索到此密码,因此请务必复制该密码,并将其存储在可以找到的位置。

    如果选择生成新的密钥对,则在添加本地用户后,系统会提示你下载该密钥对的私钥。

    注意

    本地用户具有仅用于 SMB 身份验证的 sharedKey 属性。

后续步骤