您好,登錄后才能下訂單哦!
還記的之前老貓關(guān)于通過(guò)Powershell遠(yuǎn)程管理Azure中虛擬機(jī)的博文的腳本中,每個(gè)虛擬機(jī)訪(fǎng)問(wèn)都需要通過(guò)get-credential交互方式取得用于訪(fǎng)問(wèn)的用戶(hù)憑據(jù),但是這這種方式每次都要進(jìn)行用戶(hù)交互,如果反復(fù)運(yùn)行的腳本顯然不是個(gè)好方式,如何加密保留用戶(hù)的憑據(jù)以便反復(fù)使用就是個(gè)最佳實(shí)踐的內(nèi)容。當(dāng)然現(xiàn)在國(guó)際版Azure中提供的自動(dòng)化服務(wù)功能包含的Asset可以安全保留憑據(jù)用于自動(dòng)化腳本調(diào)用,由于目前國(guó)內(nèi)的Azure服務(wù)還沒(méi)有這項(xiàng)功能,因此暫時(shí)只能按下不表了,當(dāng)然如果只能這樣本文也就結(jié)束了,這里介紹一個(gè)方法可以用于在自動(dòng)化服務(wù)到來(lái)之前參考使用。
由于這個(gè)方法采用通過(guò)證書(shū)進(jìn)行加密和解密的過(guò)程,因此需要用到在管理客戶(hù)端的證書(shū)私鑰進(jìn)行解密,證書(shū)公鑰進(jìn)行加密;如果對(duì)自制自簽名證書(shū)不太了解的話(huà)可以參考通過(guò)MakeCert工具創(chuàng)建自簽名證書(shū)的方法;通過(guò)這種方式只要管理節(jié)點(diǎn)或在Azure的虛擬機(jī)中具有相應(yīng)證書(shū)私鑰的話(huà)都也可以通過(guò)這種方式保存的加密文件安全的獲得用戶(hù)憑據(jù)。
通過(guò)證書(shū)公鑰加密并且通過(guò)Base64格式保留到當(dāng)前用戶(hù)環(huán)境的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
在相應(yīng)安裝證書(shū)私鑰節(jié)點(diǎn)獲得用戶(hù)憑據(jù)用于運(yùn)行腳本使用:
$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)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。