vscode-remote-ssh 不适用于使用 Azure AD 身份验证的 SSH

vscode-remote-ssh does not work with SSH using Azure AD authentication

我们正尝试在 Azure 中使用项目特定的 VM 实施远程开发模型,并允许用户使用带有 MFA 的 Azure AD 身份验证从 VS 代码进行连接。 它适用于 Public 密钥,但不适用于 Azure AD 身份验证。

有一些禁用本地服务器选项并启用控制台的建议,因此用户可以单击设备登录 link 并输入代码。但是,该模型已被 Microsoft 弃用。所以当前可用的选项是使用 az ssh 模块(或者我找不到的东西)

https://docs.microsoft.com/en-us/azure/active-directory/devices/howto-vm-sign-in-azure-ad-linux

感谢有关如何为此模型配置身份验证的任何指导

您需要按照Microsoft Document中已经提到的步骤为用户启用AD登录。

使用 az-cli 从 vscode 执行 ssh 所必需或需要的步骤:

  1. 创建虚拟机时,请确保您有Login with Azure AD preview启用并请打开SSHHTTPHTTPS 端口:

  2. 在Visual Studio代码中,请确保Azure CLI为az模块安装了扩展ssh。您可以按照以下 2 个命令进行安装:

    az login # login using your Azure AD user credentials
    az extension add --name ssh # install the ssh extension
    
  3. 请确保在使用 user 登录 Azure AD 之前,您必须为该用户分配 rbac 角色,即 Virtual Machine Administrator Login/ Virtual Machine User Login

    如果您不为用户提供角色,您将面临以下错误:

    To assign the roles , 你可以去 VM in Portal >> Access Control(IAM)>>add role assignment>> select VM admin login /VM user login >> add the users and assign.

  4. 完成上述操作后,您将能够使用 az 通过 SSH 连接到虚拟机 来自 vscode 的模块如下所示:

    命令:

    az login # user who will login need to authenticate
    az ssh vm -n vmname -g resourcegroupname # SSH to the VM
    


更新:

上述问题的第二部分是如何使用 Azure 广告凭据从 VSCODE 使用远程桌面:

  1. 运行 vscode 中的这 2 个命令:

    az login
    az ssh config --ip VMPublicIP --file C:\Users\user\terraform\sshconfig # saves the config file with your azureadcredentials
    

  2. 复制使用 以上命令为 VM 远程 ssh 配置文件。

  3. 完成上述操作后,请连接到主机以获取相同的文件 您已为上述步骤配置。