Azure虚拟机管理最佳实践之用户凭据 推荐
2015-01-04 21:51
330 查看
还记的之前老猫关于通过Powershell远程管理Azure中虚拟机的博文的脚本中,每个虚拟机访问都需要通过get-credential交互方式取得用于访问的用户凭据,但是这这种方式每次都要进行用户交互,如果反复运行的脚本显然不是个好方式,如何加密保留用户的凭据以便反复使用就是个最佳实践的内容。当然现在国际版Azure中提供的自动化服务功能包含的Asset可以安全保留凭据用于自动化脚本调用,由于目前国内的Azure服务还没有这项功能,因此暂时只能按下不表了,当然如果只能这样本文也就结束了,这里介绍一个方法可以用于在自动化服务到来之前参考使用。
由于这个方法采用通过证书进行加密和解密的过程,因此需要用到在管理客户端的证书私钥进行解密,证书公钥进行加密;如果对自制自签名证书不太了解的话可以参考通过MakeCert工具创建自签名证书的方法;通过这种方式只要管理节点或在Azure的虚拟机中具有相应证书私钥的话都也可以通过这种方式保存的加密文件安全的获得用户凭据。
通过证书公钥加密并且通过Base64格式保留到当前用户环境的Mypassword.txt中,
在相应安装证书私钥节点获得用户凭据用于运行脚本使用:
由于这个方法采用通过证书进行加密和解密的过程,因此需要用到在管理客户端的证书私钥进行解密,证书公钥进行加密;如果对自制自签名证书不太了解的话可以参考通过MakeCert工具创建自签名证书的方法;通过这种方式只要管理节点或在Azure的虚拟机中具有相应证书私钥的话都也可以通过这种方式保存的加密文件安全的获得用户凭据。
通过证书公钥加密并且通过Base64格式保留到当前用户环境的Mypassword.txt中,
$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
在相应安装证书私钥节点获得用户凭据用于运行脚本使用:
$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)
相关文章推荐
- 推荐一款用户体验最佳的项目管理工具 NPlan
- 用户帐户,授权和密码管理的 12 个最佳实践
- WebLogic管理最佳实践
- WebLogic Server 管理最佳实践
- IBM Rational 开发团队的变更管理最佳实践
- 组策略最佳实践之“降龙十八掌” 推荐
- 业务连续管理(BCM)十大最佳实践标准
- 2004年度八大推荐最佳管理案例
- 话题:ERP的管理思想与最佳实践
- 事务管理最佳实践多余的话之三Spring声明式事务管理出错示例与解决之道
- 事务管理最佳实践多余的话之二:Transaction后缀给声明式事务管理带来的好处
- 神州数码最佳实践之一:向项目管理要效益
- [推荐]网站项目成功管理实践(上)(下)
- 事务管理最佳实践多余的话之一“每次请求,一次数据库连接,一次事务”是不是金科玉律?
- 事务管理最佳实践全面解析
- 事务管理最佳实践多余的话之三Spring声明式事务管理出错示例与解决之道
- WebLogic Server 管理最佳实践
- 事务管理最佳实践全面解析
- 事务管理最佳实践多余的话之二:Transaction后缀给声明式事务管理带来的好处
- Linux 用户管理一 推荐