您好,登錄后才能下訂單哦!
還記的之前老貓關于通過Powershell遠程管理Azure中虛擬機的博文的腳本中,每個虛擬機訪問都需要通過get-credential交互方式取得用于訪問的用戶憑據,但是這這種方式每次都要進行用戶交互,如果反復運行的腳本顯然不是個好方式,如何加密保留用戶的憑據以便反復使用就是個最佳實踐的內容。當然現在國際版Azure中提供的自動化服務功能包含的Asset可以安全保留憑據用于自動化腳本調用,由于目前國內的Azure服務還沒有這項功能,因此暫時只能按下不表了,當然如果只能這樣本文也就結束了,這里介紹一個方法可以用于在自動化服務到來之前參考使用。
由于這個方法采用通過證書進行加密和解密的過程,因此需要用到在管理客戶端的證書私鑰進行解密,證書公鑰進行加密;如果對自制自簽名證書不太了解的話可以參考通過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)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。