使用 VMAccess 扩展程序重置 Linux 虚拟机的登录凭据
来源:互联网 发布:一加五 linux 编辑:程序博客网 时间:2024/06/05 00:19
您是否曾经因为忘记 Azure VM 密码或 SSH密钥而导致无法访问 VM?VMAccess扩展程序使您可以重置密码、SSH密钥或 SSH配置,以便重新获得访问权限。
此扩展程序针对 Linux VM。对于 Windows VM,请单击此处获取详细信息。
如果这是您第一次使用 VM 扩展程序,您可以查阅此处获取背景信息。
先决条件
使用 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的方法
- 从Github下载 WALA 2.0.8 的源代码# wgethttps://raw.githubusercontent.com/Azure/WALinuxAgent/WALinuxAgent-2.0.8/waagent
- 为waagent文件添加“可执行”的权限# chmod +x waagent
- 替换 /usr/sbin/目录下的waagent文件# cp waagent /usr/sbin
- 重启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/
- 使用 VMAccess 扩展程序重置 Linux 虚拟机的登录凭据
- 使用 Windows Vista 的凭据提供程序创造自定义的登录体验
- 使用 Windows Vista 的凭据提供程序创造自定义的登录体验
- msdn 基于credentialprovider的混合凭据提供程序登录体验
- 解决系统管理员不允许使用保存的凭据登录远程计算机
- 域用户计算机不允许使用保存的凭据登录远
- 使用 CustomScript 扩展程序自动执行 Linux 虚拟机自定义任务
- 使用 CustomScript 扩展程序自动执行 Linux 虚拟机自定义任务
- 重置 kali Linux 的登录密码
- ssh 登录虚拟机的linux
- ssh 登录虚拟机的linux
- ssh 登录虚拟机的linux
- 解决系统系统管理员不允许使用保存的凭据登录远程计算机
- VMware虚拟机安装的kali linux----重置密码流程
- Linux系统下脚本对虚拟机的安装重置
- 如何禁止客户端机器使用凭据远程登录
- Linux的VM虚拟机扩展磁盘空间
- 虚拟机Linux下扩展硬盘的方法
- Oracle常见错误号以及原因
- 并发数计算方法
- 数据库连接池
- php中preg_match和preg_match_all的区别
- maven java.lang.ClassNotFoundException: ContextLoaderListener
- 使用 VMAccess 扩展程序重置 Linux 虚拟机的登录凭据
- EF中使用数据库的标量值函数
- PropertiesHelper.java
- yii php代码高亮
- 教你写map-reduce--lesson1
- Java国际化
- java_web开发入门
- ORA-12705 invalid or unknown NLS parameter value specified
- DDX_Control