使用 VMAccess 扩展程序重置 Linux 虚拟机的登录凭据

Ning KuangWSSC WS ARD高级项目经理 


您是否曾经因为忘记 Azure VM 密码或 SSH密钥而导致无法访问 VMVMAccess扩展程序使您可以重置密码、SSH密钥或 SSH配置,以便重新获得访问权限。

此扩展程序针对 Linux VM。对于 Windows VM,请单击此处获取详细信息。

如果这是您第一次使用 VM 扩展程序,您可以查阅此处获取背景信息

先决条件

微软 Azure Linux 代理 2.0.5 或更高版本。请注意,大多数 Azure 虚拟机 Linux 镜像库都包含 2.0.5 版本。您可以通过运行 waagent -version 来确认此版本已安装在虚拟机中。为保证扩展程序最佳用户体验,建议按照本文结尾“其他注意事项”中的步骤更新到最新版本。 Azure PowerShell 。请注意,针对扩展程序的 跨平台 CLI 支持有望在未来几周内推出。 您想要对您的 VM 重置的新密码或 SSH 密钥。

使用 VMAccess扩展程序

根据您想要为 VM 重置的内容,VMAccess的使用有 5种场景。以下将介绍这些场景和对应的 PowerShell示例脚本。请注意,您只需为每种场景指定不同的参数,开始执行这行注释之后的第二部分在不同场景中均相同。脚本非常简单。

1.仅重置密码

<strong><span style="font-size:14px;">#用于重置密码的示例脚本
#指定虚拟机
$vm = Get-AzureVM -ServiceName ‘MyServiceName’ -Name ‘MyVMName’
#输入您当前的用户名和新密码
$UserName = "CurrentName"
$Password = "NewPassword"
$PrivateConfig = '{"username":"'+ $UserName + '", "password":"' +  $Password + '”}' 

#开始执行
$ExtensionName = 'VMAccessForLinux'
$Publisher = 'Microsoft.OSTCExtensions'
$Version =  '1.0'
Set-AzureVMExtension -ExtensionName $ExtensionName -VM  $vm -Publisher $Publisher -Version $Version -PrivateConfiguration $PrivateConfig | Update-AzureVM
</span></strong>

2.仅重置 SSH密钥

<strong><span style="font-size:14px;">#用于重置 SSH 密钥的示例脚本
#指定虚拟机
$vm = Get-AzureVM -ServiceName ‘MyServiceName’ -Name ‘MyVMName’
#输入当前用户名和您的新公共 SSH 密钥的路径
$UserName = "CurrentName"
$cert = Get-Content "CertPath"
$PrivateConfig = '{"username":"'+ $UserName + '", "ssh_key":"'+ $cert + '"}'

#开始执行
$ExtensionName = 'VMAccessForLinux'
$Publisher = 'Microsoft.OSTCExtensions'
$Version =  '1.0'
Set-AzureVMExtension -ExtensionName $ExtensionName -VM  $vm -Publisher $Publisher -Version $Version -PrivateConfiguration $PrivateConfig | Update-AzureVM
</span></strong>

3.重置密码和 SSH密钥

<strong><span style="font-size:14px;">#用于重置密码和 SSH 密钥的示例脚本
#指定虚拟机
$vm = Get-AzureVM -ServiceName ‘MyServiceName’ -Name ‘MyVMName’
#输入新密码、新 SSH 公共密钥的证书路径以及当前用户名 
$UserName = "CurrentName"	
$Password = "NewPassword"
$cert = Get-Content "CertPath"
$PrivateConfig = '{"username":"'+ $UserName + '", "password":"' +  $Password + '", "ssh_key":"'+ $cert + '"}' 

#开始执行
$ExtensionName = 'VMAccessForLinux'
$Publisher = 'Microsoft.OSTCExtensions'
$Version =  '1.0'
Set-AzureVMExtension -ExtensionName $ExtensionName -VM  $vm -Publisher $Publisher -Version $Version -PrivateConfiguration $PrivateConfig | Update-AzureVM
</span></strong>

4.创建新的 sudo用户帐户

如果您忘记用户名,可以使用 VMAccess 创建一个具有 sudo权限的新用户名。请注意,在这种情况下,您的原始用户名和登录密钥不会被修改,它们应该仍然有效。

要创建具有密码访问权限的新 sudo 用户,请使用场景 1中的脚本;要创建具有 SSH密钥访问权限的新 sudo用户,请使用场景 2中的脚本;您也可以使用场景 3来创建具有两种访问权限的新用户;记住您需要将“UserName”更改为新的用户名。

5.重置 SSH配置

如果 SSH 配置混乱,您也可能会失去对 VM的访问权限。您可以使用 VMAccess扩展程序将配置重置为默认配置。要执行此操作,您只需使用下面的示例脚本。扩展程序会重新启动 SSH服务器,打开 VM上的 SSH端口,将 SSH配置重置为默认配置。您的 VM的用户帐户(密码或 SSH密钥)保持不变。

请注意,被重置的 SSH 配置文件位于 /etc/ssh/sshd_config

<span style="font-size:14px;">#用于重置 VM 上的 SSH 配置的示例脚本 
#指定虚拟机
$vm = Get-AzureVM -ServiceName ‘MyServiceName’ -Name ‘MyVMName’
$PrivateConfig = '{"reset_ssh":"True"}' 

#开始执行
$ExtensionName = 'VMAccessForLinux'
$Publisher = 'Microsoft.OSTCExtensions'
$Version =  '1.0'
Set-AzureVMExtension -ExtensionName $ExtensionName -VM  $vm -Publisher $Publisher -Version $Version -PrivateConfiguration $PrivateConfig | Update-AzureVM
</span>

查询结果

可以使用 Azure PowerShell Cmdlet “Get-AzureVM” “Get-Deployment”检索 VMAccess扩展程序的状态。

重置后访问 VM

VMAccess扩展程序重置凭据和配置后,您可以使用新的帐户名、密码或 SSH密钥登录到虚拟机

其他注意事项

  • 请注意,如果只想重置现有用户帐户的密码或 SSH密钥,则需要确保输入的用户名与原始用户名匹配。如果您输入的名称与原始用户名不一致,VMAccess扩展程序会判定为场景 4并创建新的用户帐户. 

  • 更新到WALA 2.0.8的方法

  1.  为 waagent 文件添加“可执行”的权限 # chmod +x waagent
  2. 替换 /usr/sbin/ 目录下的 waagent 文件 # cp waagent /usr/sbin
  3. 重启 waagent 服务

# service waagent restart

(如果你使用的是Ubuntu,需要将上述命令中的waagent替换为walinuxagent)

注意:1.如需要更新到其他版本,请参看GitHub说明2.运行以上命令需要Root权限。

本文翻译自:http://azure.microsoft.com/blog/2014/08/25/using-vmaccess-extension-to-reset-login-credentials-for-linux-vm/




转载于:https://www.cnblogs.com/sesexxoo/p/6190995.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值