Windows azure下的Linux vm密码重置

上一篇我们介绍了windows azure下的windows vm下的密码忘记重置,今天介绍一下,在windows azure下的linux vm的密码重置。

密码忘记有两种方式,一种是知道需要重置的账户密码,一一种是不知道需要重置的密码。

比如上届管理员创建完后工作没交接就走了,本届管理员不知道密码,不知道重置那个密码,所以windows azure就用覆盖的方法来完成从重置密码操作。

先决条件

微软 Azure Linux 代理 2.0.5 或更高版本。请注意,大多数 Azure 虚拟机 Linux 镜像库都包含 2.0.5 版本。您可以通过运行 waagent -version 来确认此版本已安装在虚拟机中。为保证扩展程序最佳用户体验,建议按照本文结尾“其他注意事项”中的步骤更新到最新版本。

Azure PowerShell。请注意,针对扩展程序的跨平台 CLI 支持有望在未来几周内推出。

您想要对您的 VM 重置的新密码或 SSH 密钥。

使用 VMAccess 扩展程序

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

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

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

接下来我们演示一下,我们知道linux一般都通过ssl工具登陆

创建linux 计算机

默认开放的端口

默认也是安装代理的

正在创建vm

我们通过xshell来登陆

我们知道ubuntu默认root是不启用的,所以我们需要给root设置一个密码,然后切换到root

Sudo passwd root

然后通过

su root

切换到root下

查看有那些用户可以登陆该系统

我系统下有azureuser、root两个用户,我如果root密码忘记了或者azureuser密码忘记了我应该怎么做呢,需要通过powershell azure进行重置。

我们下载了windows azure powershel,那windows azure poershell跟系统自带的windows powershell有什么区别呢,最大的区别就是有没有azure相关的服务模块,再次也不多介绍了,有了powershell 后,我们需要windows azure的订阅文件,我们需要通过访问windows azure的portal界面进行下载或者通过powershell下载。

https://manage.windowsazure.cn/publishsettings/index?client=powershell

运行windows azure powershell

导入订阅文件

订阅文件导入成功。

因为我环境下有多个订阅,所以我们需要设置默认的订阅

检查Azure PowerShell中默认的Azure账户是不是自己想要操作的账户:

输入命令:

Get-AzureSubscription –Default

,检查出来的结果中会出现Subscription ID,查看一下这个Sub ID是否是自己Azure管理平台上的订阅ID.

如果Sub ID不同,那么需要重新设置默认账户(如果您是首次操作,那么应该会是相同的)。更改命令:

Select- Select-AzureSubscription -SubscriptionName "添加账户名" -Default

注:如果一个订阅文件下有多个订阅id的话,我们也可以选择修改指定的订阅id为默认

修改后,我们输入命令

 Get-AzureVM

(查到自己的虚拟机名称及云服务名称)

输入命令

$VM = Get-AzureVM -ServiceName "xxxx" -Name "mxxx"

定义一个变量vm,然后查看当前服务的信息

#指定虚拟机

$vm = Get-AzureVM -ServiceName ‘MyServiceName’ -Name ‘MyVMName’

(查看输出结果是否是‘True’) 如果安装代理,返回的结果为true

$vm.GetInstance().ProvisionGuestAgent = $true

#输入您当前的用户名和新密码

$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

通过新密码登陆。

windows azure命令结合:

http://msdn.microsoft.com/en-us/library/dn495240.aspx

注意:官网上的代码标点符号有问题,所以执行起来会有问题:

我们可以将以上代码写为一个.ps文件去执行即可。

$vm = Get-AzureVM -ServiceName ‘?ZZtestlinux’?¥ -Name ‘?ZZtestlinux’?¥
$vm.GetInstance().ProvisionGuestAgent = $true
$UserName = "azureuser"
$Password = "Password2014"
$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

2. Reset the SSH key only

#Sample script to reset your SSH keys
#Identify the VM
$vm = Get-AzureVM -ServiceName ‘MyServiceName’ -Name ‘MyVMName’
#Enter the current user name and the path of your new public SSH key
$UserName = "CurrentName"
$cert = Get-Content "CertPath"
$PrivateConfig = ‘{"username":"‘ + $UserName + ‘", "ssh_key":"‘ + $cert + ‘"}‘
# Begin execution
$ExtensionName = ‘VMAccessForLinux‘
$Publisher = ‘Microsoft.OSTCExtensions‘
$Version = ‘1.0‘
Set-AzureVMExtension -ExtensionName $ExtensionName -VM $vm -Publisher $Publisher -Version $Version -PrivateConfiguration $PrivateConfig | Update-AzureVM

3. Reset the password and the SSH key

#Sample script to reset your password and SSH key
#Identify the VM
$vm = Get-AzureVM -ServiceName ‘MyServiceName’ -Name ‘MyVMName’
#Enter the new password, and cert path of the new SSH public key, with the current user name
$UserName = "CurrentName"
$Password = "NewPassword"
$cert = Get-Content "CertPath"
$PrivateConfig = ‘{"username":"‘ + $UserName + ‘", "password": "‘ + $Password + ‘", "ssh_key":"‘ + $cert + ‘"}‘
# Begin execution
$ExtensionName = ‘VMAccessForLinux‘
$Publisher = ‘Microsoft.OSTCExtensions‘
$Version = ‘1.0‘
Set-AzureVMExtension -ExtensionName $ExtensionName -VM $vm -Publisher $Publisher -Version $Version -PrivateConfiguration $PrivateConfig | Update-AzureVM

4. Create a new sudo user account

If you forget your user name, you can use VMAccess to create a new one with the sudo authority. Note in this case, your original user name and login keys will not be modified, it should still work.

To create a new sudo user with password access, use the script in scenario 1; for creating a new sudo user with SSH key access, use the script in scenario 2; you can also use scenario 3 to create a new user with both access;  remember you need to change the “UserName” to a new user name.

5. Reset the SSH configuration

If the SSH configuration is messed up, you might also lose the access to the VM. You can use VMAccess extension to reset the configuration to default. To do so, you just need to remove all the new access parameters in the configuration (user name, password, or SSH key). The extension will restart the SSH server, open the SSH port on your VM, and reset the SSH configuration to default. The user account (password or SSH keys) of your VM remains unchanged.

Note, The SSH configuration file that get reset is located at /etc/ssh/sshd_config.

#Sample script to reset the SSH configuration on your VM
#Identify the VM
$vm = Get-AzureVM -ServiceName ‘MyServiceName’ -Name ‘MyVMName’
$PrivateConfig = ‘{"reset_ssh": "True"}‘
# Begin execution
$ExtensionName = ‘VMAccessForLinux‘
$Publisher = ‘Microsoft.OSTCExtensions‘
$Version = ‘1.0‘
Set-AzureVMExtension -ExtensionName $ExtensionName -VM $vm -Publisher $Publisher -Version $Version -PrivateConfiguration $PrivateConfig | Update-AzureVM

Query the results

The status of the VMAccess extension could be retrieved using Azure PowerShell Cmdlet Get-AzureVM or Get-Deployment.

Access the VM after resetting

After the VMAccess Extension completes resetting the credentials and configurations, you can log on to the instance using the new account name, password or SSH key.

Additional Notes

Note if you only want to reset the password or SSH key for the existing user account, you need to make sure the user name you entered matches the original user name. If you enter a name that is different from your original name, the VMAccess extension will consider this as scenario 4 listed above, and create a new user account.

Known issue

When you run the PowerShell command “Set-AzureVMExtension” on Linux VM, you may hit following error: “Provision Guest Agent must be enabled on the VM object before setting IaaS VM Access Extension”.

Root Cause: when you create the image via portal, the value of guest agent on the VM is not always  set to “True”. If your VM is created using PowerShell, you will not see this issue.

Resolution: Add the following PowerShell command to set the ProvisionGuestAgent to “True”;

$vm = Get-AzureVM -ServiceName ‘MyServiceName’ -Name ‘MyVMName’
$vm.GetInstance().ProvisionGuestAgent = $true
时间: 2024-10-19 01:52:26

Windows azure下的Linux vm密码重置的相关文章

Windows Azure下Exchange Server2016高可用性配置介绍

我们前一篇文章中就介绍了Azure下部署Apache高可用性服务的介绍,今天呢,主要介绍一下在Azure下如何实现Exchange2016高可用性服务的部署,说到Exchange2016的高可用部署,我们前面的文章中用也有介绍到,在本地使用Centos+LVS+Keepalived实现了Exchange2016的高可用性服务配置,如果要将Exchange2016部署到Azure下如何实现高可用配置呢,我们都知道如果在Azure下部署高可用,我们只需要将服务器放在同一运行,然后配置对应的可用性集就

Windows Azure下的Windows VM密码重置

Windows azure下的windows vm密码重置 说到密码问题,相信管理员都头疼,尤其作为一个大企业的管理员,服务器密码的使用很是麻烦,为什么这么说呢,因为大企业要求的信息安全,要求用户密码45天更改一次,当然不更改的话那就意味着过期,就无法使用了,还有一种情况那就是用户的密码,对于不在公司办公,而是外派的用户不经常访问偶尔访问公司的信息系统的用户密码确实是一个问题,对于我们公司来说,就这样的问题比较多,经常让助理发邮件给管理员重置他们的密码,这样给管理员带来很大困扰,后来呢,为了彻底

Windows Azure平台Win VM密码重置

          Windows Azure平台Win VM密码重置 近期给客户做Azure实施,客户把Azure平台的Linux系统的账户忘记了,帮助客户进行重置了Linux系统的密码,顺便自己研究了一下,Windows VM账户忘记重置密码与Linux系统重置密码的区别,分享给大家. 1.使用PowerShell下载Azure订阅文件 2.下载订阅如图: 3.下载配置文件后,使用记事本打开,更改订阅Azure订阅名称,以便于后续管理Azure多个订阅方便识别管理,如图: 4.Azure订阅

Ubuntu下MySQL忘记root密码重置

MySQL忘记root密码肿么办?-_-|||   这种情况虽然不是很常见,但是有时长时间没有登录系统,还真会忘记密码.这时候,如果您能以系统管理员权限登陆密码,那还是有救的.放大招,将其重置即可. 1. 修改MySQL的登录设置 vi /etc/mysql/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables :wq 保存设置并退出vi 2. 重新启动mysqld sudo service mysql restart 3. 登录并修改MySQL的root密码  进

Windows环境下在Oracle VM VirtualBOX下克隆虚拟机镜像(克隆和导入)

Windows环境下在Oracle VM VirtualBOX下克隆虚拟机镜像: 注:直接复制一个.vdi 虚拟硬盘再挂上去就可以,但Virtualbox居然提示UUID重复,无法使用. 则,可以通过Vritualbox自带的一个命令行工具解决,UI上没有提供对应的解决方案 : 注:克隆镜像及导入镜像生成虚拟机 1.定位到Vritualbox的安装目录,不能用全路径的方式直接执行该命令行(shift+鼠标左键:->在此处打开命令行(W)) 2.执行VBoxManage.exe clonevdi

Azure国际版VM密码重置(Portal)

我们都知道Azure分为国内和国际,但国际的功能比国内的azure功能多,更新快,今天我们说说密码重置相关的信息,比如我们在azure上安装了vm,然后长时间了忘记了密码,那该怎么重置呢,之前我们也在文章中有介绍,可以使用powershell azure的相关命令操作进行重置,但是今天意外发现,国际Azure下的vm密码直接可以使用portal进行重置了,一般我们对linux的密码操作比较多,如果对于windows的话很少,因为我们一般都会加入域,然后使用域用户进行登录,相对比较简单一点, 通过

Windows Azure下Apache高可用服务配置介绍

pWindows Azure下Apache高可用服务配置介绍/p  pAzure现在不是一个什么新鲜话题了,但可以说Azure的功能还在逐渐增加,包括性能上的优化,具体就不多介绍了,近期呢闲着没事,就尝试在Azure上部署Apache服务的高可用性部署,如果在本地部署Apache服务的高可用性的话,会用到LVS+Keepalived等服务来实现Apache的高可用性配置,如果我们将Apache服务部署到windows azure上的话,就省去了LVS+Keepalived的配置,所以相对比较简单

linux下mysql的root密码重置,不适用集成安装包

1.修改MySQL的登录设置: # vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables  例如: [mysqld]  datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-grant-tables  保存并且退出vi. 2.新启动mysqld # /etc/init.d/mysqld restart  Stopping MySQL: [ OK ]  Starting MySQL: 

windows平台下安装linux

win10系统下,可直接安装linux系统,且可打开linux的命令行 安装 1.开始--->微软应用商店 2.进入之后,在搜索框,搜索linux 3.在搜索结果中,选择要安装的 linux 系统 这里,我已经安装了这个乌班图的系统了,只需点击进去,再次点击获取即可,,,,然后,静等安装完成 使用 安装完成后,开始菜单会增加一个安装好的图标,如下图, 1.先要打开的话直接,点击图标即可 或者在windows的cmd串口中输入,bash,即可切换到 linux状态下, 原文地址:https://w