Azure虚拟机管理最佳实践之用户凭据

简介:

还记的之前老猫关于通过Powershell远程管理Azure中虚拟机的博文的脚本中,每个虚拟机访问都需要通过get-credential交互方式取得用于访问的用户凭据,但是这这种方式每次都要进行用户交互,如果反复运行的脚本显然不是个好方式,如何加密保留用户的凭据以便反复使用就是个最佳实践的内容。当然现在国际版Azure中提供的自动化服务功能包含的Asset可以安全保留凭据用于自动化脚本调用,由于目前国内的Azure服务还没有这项功能,因此暂时只能按下不表了,当然如果只能这样本文也就结束了,这里介绍一个方法可以用于在自动化服务到来之前参考使用。


由于这个方法采用通过证书进行加密和解密的过程,因此需要用到在管理客户端的证书私钥进行解密,证书公钥进行加密;如果对自制自签名证书不太了解的话可以参考通过MakeCert工具创建自签名证书的方法;通过这种方式只要管理节点或在Azure的虚拟机中具有相应证书私钥的话都也可以通过这种方式保存的加密文件安全的获得用户凭据。


通过证书公钥加密并且通过Base64格式保留到当前用户环境的Mypassword.txt中,

1
2
3
4
5
$cert  Get-ChildItem  Cert:\LocalMachine\My\[certificate thumbprint]
$bytes  [Text.Encoding] ::UTF8.GetBytes( "putyourpasswordhere" )
$encrypt  $cert .PublicKey.Key.Encrypt( $bytes $true )
$base64  [Convert] ::ToBase64String( $encrypt )
Set-Content  $HOME \Myencrptpwd.txt  $base64


在相应安装证书私钥节点获得用户凭据用于运行脚本使用:

1
2
3
4
5
$cert  Get-ChildItem  Cert:\LocalMachine\My\[certificate thumbprint]
$base64  Get-Content  $HOME \Myencrptpwd.txt
$encrypt  [Convert] ::FromBase64String( $base64 )
$bytes  $cert .PrivateKey.Decrypt( $encrypt , $true )
$password  [Text.Encoding] ::UTF8.GetString( $bytes )









本文转自 翟老猫 51CTO博客,原文链接:http://blog.51cto.com/3387405/1599122,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
存储 运维 API
云计算中的虚拟机管理
云计算中的虚拟机管理
33 0
|
8月前
|
存储 虚拟化 块存储
存储与虚拟机管理 3
存储与虚拟机管理
154 0
|
1月前
|
XML 数据格式
virsh一个管理虚拟机的命令行工具
virsh是一个管理虚拟机的命令行工具,提供了丰富的命令来查看、创建、管理虚拟机。以下是一些常用的virsh命令: 1. **查看帮助和版本**: - `virsh --help`:查看virsh命令的帮助信息。 - `virsh -version`:查看virsh的版本信息。 2. **查看虚拟机**: - `virsh list`:显示当前正在运行的虚拟机。 - `virsh list --all`:显示主机下的所有虚拟机,包括未运行的。 3. **创建和管理虚拟机**: - `virsh define xml`:使用XML文件定义(创建)虚拟机。
|
8月前
|
存储 虚拟化
存储与虚拟机管理2
存储与虚拟机管理
46 0
|
8月前
|
存储 网络协议 虚拟化
存储与虚拟机管理 3
存储与虚拟机管理
64 0
|
8月前
|
存储 虚拟化
存储与虚拟机管理 2
存储与虚拟机管理
63 0
|
8月前
|
存储 虚拟化 数据中心
存储与虚拟机管理 1
存储与虚拟机管理
60 0
|
8月前
|
存储 Linux 文件存储
存储与虚拟机管理 1
存储与虚拟机管理
62 0
|
8月前
|
存储 缓存 Linux
Linux基础学习---6、系统定时任务、软件包管理、虚拟机克隆
Linux基础学习---6、系统定时任务、软件包管理、虚拟机克隆
|
9月前
|
Docker 容器
IDEA中连接虚拟机 管理Docker
IDEA中连接虚拟机、IDEA中SFTP连接、IDEA中连接Docker
105 1
IDEA中连接虚拟机 管理Docker