我正在使用* nix机器中的azure cli
工具来pipe理Azure帐户中的个人vms。 我想知道是否有一种方法来保存我的login凭据,这样我就不必重做azure login
命令,既不input我的密码/凭证。
我使用azure account download
下载了我的帐户设置,并使用azure account download
导入function在我的计算机上导入了该azure account import
。但是,当我重新启动会话时,仍然需要执行手动login步骤。
因此,有没有办法设置azure色的cli来保存我的账户信息,这样我就不必手动login了?
当你打电话给azure login
你实际上得到了一个只有有限生命的令牌,所以即使你能在会话中坚持,它仍然会在12小时后过期。 可能但不build议将用户名和密码指定为脚本的一部分:
azure login -u $username -p $password
要做到这一点,您必须使用Azure Active Directory帐户进行身份validation,假设您愿意冒这个风险,因为您正在pipe理您的个人 Azure订阅,这可能是最简单的select。
根据我的经验,在公司,企业或高风险的情况下,有两种方法更适合:
Azure自动化是一个Azure平台服务,它允许您在Azure中构build参数化的工作stream,您可以通过Web UI或命令行按计划触发这些工作stream。 重复性任务被简化,因为工作stream程所运行的环境在时间和多个环境中是一致的。
使用服务主体进行的Azurevalidation允许您使用证书( .pfx
)login到Azure,假定所述证书没有密码存储,那么您可以按照以下步骤实现无密码login:
在您的脚本中与您的服务负责人进行身份validation
cert=$(openssl x509 -in "./examplecert.pem" -fingerprint -noout | sed 's/SHA1 Fingerprint=//g' | sed 's/://g' tenantId=$(azure account show -s <subscriptionId> --json | jq -r '.[0].tenantId') appId=$(azure ad app show --search exampleapp --json | jq -r '.[0].appId') azure login --service-principal --tenant "$tenantId" -u "$appId" --certificate-file ./examplecert.pem --thumbprint "$cert"