限被拒絕排查指南:從SSH登錄到vCenter的完整鏈路)
被VMware ESXi彈“Permission denied”支配過的運(yùn)維應(yīng)該不止我一個(gè)。半夜加虛擬機(jī)SSH過去密碼敲完屏幕上冷冰冰地顯示權(quán)限被拒絕切到vSphere Web Client上傳ISO、做快照同樣給你一句“權(quán)限被拒絕”。更抓狂的是同一句報(bào)錯(cuò)搜索引擎能給你搜出上百種答案改密碼、重啟服務(wù)、重置配置試了一圈還是原地踏步。這篇文章我就把ESXi里各種“提示權(quán)限被拒絕”的真實(shí)場(chǎng)景全部拆開從SSH登錄、Web Client操作、數(shù)據(jù)存儲(chǔ)文件到vCenter接入按報(bào)錯(cuò)出現(xiàn)的位置逐層理清根因和排查鏈路。里面提到的操作都是我在生產(chǎn)環(huán)境里實(shí)際踩過、驗(yàn)證過的適合剛接手虛擬化的小白也適合被這類問題折磨過的老兵拿來(lái)對(duì)照。1. 先把“權(quán)限被拒絕”分清楚報(bào)錯(cuò)場(chǎng)景決定排查方向很多人一看到“Permission denied”就慌了急著去猜密碼、改配置但ESXi是一個(gè)多層權(quán)限系統(tǒng)真正拒絕你的那一層可能和你想的完全不一樣。我自己的習(xí)慣是先不問“為什么被拒”先問“在哪被拒”。ESXi的權(quán)限體系至少有四個(gè)層面在同時(shí)生效主機(jī)本地用戶體系、ESXi對(duì)象權(quán)限模型用戶角色資源對(duì)象、vCenter SSO授權(quán)體系、以及底層文件系統(tǒng)的可寫性。同一個(gè)“權(quán)限被拒絕”可能發(fā)生在任意一層而且不同層的修復(fù)手段完全不一樣。我在日常排障時(shí)會(huì)把報(bào)錯(cuò)場(chǎng)景先歸一下類下面這張表是我自己整理的報(bào)錯(cuò)出現(xiàn)位置常見報(bào)錯(cuò)原文根因方向SSH終端登錄Permission deniedplease try againroot密碼、鎖定模式、sshd配置、hosts.allowvSphere Web Client 登錄Access denied / Invalid credentials用戶名或密碼、域賬戶映射、會(huì)話過期Web Client 內(nèi)操作虛擬機(jī)Permission to perform this operation was denied對(duì)象權(quán)限、角色權(quán)限不足、鎖文件殘留數(shù)據(jù)存儲(chǔ)上傳/刪除文件權(quán)限被拒絕Datastore角色權(quán)限不足、空間不足、VMFS狀態(tài)異常vCenter 管理主機(jī)Permission denied / Failed to acquire credentialsvCenter授權(quán)、主機(jī)憑據(jù)失效、鎖定模式1.1 為什么同一句報(bào)錯(cuò)根因會(huì)千差萬(wàn)別ESXi沿用了Linux底層的一些設(shè)計(jì)但它真正管理權(quán)限靠的是“用戶 角色 對(duì)象”三層映射。你在vCenter里給某個(gè)用戶勾了“虛擬機(jī)管理員”角色并不意味著他能刪數(shù)據(jù)存儲(chǔ)上的文件你在主機(jī)上把root密碼改成新密碼但如果vCenter里保存的還是舊憑據(jù)vCenter發(fā)起的操作一樣會(huì)報(bào)權(quán)限被拒。所以我的建議是報(bào)錯(cuò)信息只負(fù)責(zé)告訴你權(quán)限不夠不負(fù)責(zé)告訴你哪層不夠。排查第一步永遠(yuǎn)是確認(rèn)這個(gè)操作是誰(shuí)發(fā)起的、在哪個(gè)界面上發(fā)起的、目標(biāo)對(duì)象是什么。用SSH就是本地用戶體系在管用Web Client就是對(duì)象權(quán)限在管用vCenter就是SSO在管。把這一步定下來(lái)后面才能對(duì)癥下藥。1.2 一個(gè)很容易走偏的誤區(qū)我見過有同行一遇到權(quán)限被拒就把主機(jī)重啟結(jié)果問題還在——因?yàn)楦締栴}可能出在vCenter里的憑據(jù)或者數(shù)據(jù)存儲(chǔ)殘留鎖文件重啟主機(jī)壓根不影響這些。還有人在機(jī)房DCUI界面反復(fù)試密碼最后把賬戶鎖了連緊急救援通道都進(jìn)不去。ESXi排權(quán)限問題的首要原則就是“最小動(dòng)作”。在不清楚哪層攔截之前盲目重裝、重啟、重置密碼都是高風(fēng)險(xiǎn)動(dòng)作尤其是生產(chǎn)環(huán)境。后面幾個(gè)章節(jié)我會(huì)按照不同的報(bào)錯(cuò)位置把排查鏈路一步步寫出來(lái)。2. SSH登錄被拒的完整排查鏈路從服務(wù)配置到授權(quán)文件SSH登錄被拒是ESXi里最經(jīng)典、也最讓人火大的場(chǎng)景。密碼明明是對(duì)的屏幕卻告訴你Permission denied。按照我?guī)状闻耪系慕?jīng)驗(yàn)下面這幾個(gè)位置按順序查基本能覆蓋90%的原因。2.1 第一步確認(rèn)鎖定模式Lockdown Mode是否開啟ESXi有一個(gè)安全機(jī)制叫Lockdown Mode分成兩種Normal和Strict。Normal模式下root在DCUI還能登錄但從SSH、vSphere Web Client等遠(yuǎn)程通道登錄會(huì)被直接拒絕Strict模式更狠連DCUI都拒絕root本地登錄只允許vCenter來(lái)管理主機(jī)。這個(gè)設(shè)計(jì)本來(lái)是防止密碼泄露后被人遠(yuǎn)程登錄主機(jī)但它也經(jīng)常成為“權(quán)限被拒絕”的真兇。特別是有人為了應(yīng)付安全審計(jì)在獨(dú)立主機(jī)上順手開了Lockdown Mode結(jié)果下次再要用SSH維護(hù)時(shí)發(fā)現(xiàn)自己根本進(jìn)不去。排查方式不復(fù)雜。如果主機(jī)還能通過vCenter訪問可以在“主機(jī) - 配置 - 安全配置文件 - 鎖定模式”里看到當(dāng)前狀態(tài)如果vCenter也連不上只能去物理機(jī)DCUI確認(rèn)。這里有一個(gè)我要特別強(qiáng)調(diào)的實(shí)操經(jīng)驗(yàn)獨(dú)立主機(jī)沒有vCenter管理千萬(wàn)不要開Strict模式。Normal模式出問題你還能靠DCUI本地登錄救回來(lái)Strict模式一旦觸發(fā)在沒有vCenter的情況下幾乎等于把自己鎖在門外。我在客戶現(xiàn)場(chǎng)遇過一次最后是廠商后臺(tái)介入才恢復(fù)代價(jià)非常大。2.2 第二步確認(rèn)SSH服務(wù)和sshd配置是否被改過如果鎖定模式正常下一步要檢查SSH服務(wù)本身。ESXi默認(rèn)SSH是關(guān)閉的如果服務(wù)沒啟動(dòng)其實(shí)通常報(bào)的是“Connection refused”而不是“Permission denied”但有些客戶端對(duì)錯(cuò)誤信息的處理很粗糙可能也會(huì)顯示權(quán)限類錯(cuò)誤。開啟方法很簡(jiǎn)單DCUI按F2進(jìn)入Troubleshooting Options啟用SSH或者通過vCenter在“服務(wù)”里把TSM-SSH啟動(dòng)。另外要重點(diǎn)檢查/etc/ssh/sshd_config這個(gè)文件。安全掃描總會(huì)建議把PermitRootLogin改成no把PasswordAuthentication也關(guān)掉。問題是這類改動(dòng)在ESXi上很容易被某些動(dòng)作意外覆蓋或者被手動(dòng)改壞結(jié)果就是你拿著真實(shí)密碼也登錄不了反而像“密碼錯(cuò)誤”。有一次我排障發(fā)現(xiàn)客戶主機(jī)上sshd_config里PasswordAuthentication被改成了no只有公鑰認(rèn)證能用但管理員手頭又沒有對(duì)應(yīng)的私鑰導(dǎo)致所有密碼登錄都被拒。最后是通過DCUI進(jìn)控制臺(tái)把配置恢復(fù)成默認(rèn)再重啟SSH服務(wù)才解決。如果你能通過DCUI或vCenter控制臺(tái)登錄主機(jī)可以這樣驗(yàn)證# 查看SSH配置關(guān)鍵項(xiàng) grep -E PermitRootLogin|PasswordAuthentication /etc/ssh/sshd_config # 改完配置后重啟SSH服務(wù) /etc/init.d/ssh restart2.3 第三步root的authorized_keys權(quán)限和hosts.allow這兩種情況比較隱蔽但一旦發(fā)生就是那種“怎么試都不行”的頑固問題。先看authorized_keys。ESXi里root用戶的SSH公鑰存放在/etc/ssh/keys-root/authorized_keys。SSHD對(duì)密鑰文件權(quán)限非常敏感如果文件權(quán)限太寬松比如644、777或者所屬目錄的權(quán)限不對(duì)SSHD會(huì)直接忽略這個(gè)密鑰文件表現(xiàn)為“Permission denied (publickey)”。這不是密碼問題也不是用戶問題是SSHD出于安全策略自動(dòng)拒絕了密鑰。再看hosts.allow。ESXi雖然精簡(jiǎn)但保留了TCP Wrapper痕跡。如果/etc/hosts.allow里被寫入類似“sshd: ALL: deny”的規(guī)則那么所有SSH連接都會(huì)被拒絕而且日志看起來(lái)和普通認(rèn)證失敗幾乎一樣不帶一點(diǎn)提示。這種情況我建議直接打開文件看一眼cat /etc/hosts.allow如果發(fā)現(xiàn)里面有deny規(guī)則按需刪除或注釋再重啟SSH。這個(gè)排查步驟因?yàn)檫^于“Linux老古董”經(jīng)常被做虛擬化的人忽略但它真實(shí)存在。2.4 第四步賬戶是否被鎖定ESXi對(duì)SSH登錄也有防暴力破解機(jī)制如果短時(shí)間內(nèi)連續(xù)輸錯(cuò)密碼賬戶可能被臨時(shí)鎖定。表現(xiàn)就是你再輸入正確密碼也一樣提示Permission denied。這個(gè)時(shí)候檢查思路要變確認(rèn)當(dāng)前是不是連續(xù)失敗過多次。如果確實(shí)觸發(fā)了鎖定等鎖定窗口過去即可或者通過DCUI本地登錄重新操作。這里我不建議在生產(chǎn)環(huán)境用“重啟主機(jī)”來(lái)解賬戶鎖定代價(jià)太大。更正確的是平時(shí)不要反復(fù)盲試密碼一次失敗后先在vCenter或DCUI確認(rèn)賬戶狀態(tài)再?zèng)Q定下一步。3. Web Client能開但操作全被拒會(huì)話、角色與對(duì)象權(quán)限的坑SSH排查完了另一種高頻場(chǎng)景是vSphere Web Client能正常登錄但一操作就提示“權(quán)限被拒絕”。這種問題通常和密碼無(wú)關(guān)而是ESXi的“用戶 角色 對(duì)象”權(quán)限模型在起作用。3.1 同是登錄密碼沒問題還是被拒有時(shí)候用戶輸入正確的域賬戶或本地賬戶Web Client卻提示Access denied。這種情況先排除瀏覽器緩存、會(huì)話過期等因素再考慮域賬戶映射問題。ESXi本地賬戶直接管理但如果你用的是AD域賬戶需要在ESXi上完成域加入和權(quán)限映射否則域賬戶就算密碼正確也默認(rèn)無(wú)任何權(quán)限。常見表現(xiàn)是“能登錄但任何操作都被拒”本質(zhì)是用戶沒有關(guān)聯(lián)任何角色。解決路徑不復(fù)雜在“主機(jī) - 管理 - 權(quán)限”里把域用戶添加進(jìn)去并指定一個(gè)合適的角色。如果連登錄本身都被拒通常說明這個(gè)賬戶根本沒被ESXi識(shí)別或者密碼同步出了問題而不是權(quán)限問題。3.2 能登錄但操作被拒先看角色再看對(duì)象假設(shè)你在Web Client里建虛擬機(jī)、做快照、改配置每一項(xiàng)都報(bào)“Permission to perform this operation was denied”。這時(shí)我會(huì)優(yōu)先去“權(quán)限”頁(yè)面看當(dāng)前用戶到底掛了什么角色。ESXi的權(quán)限模型是按“對(duì)象樹”展開的從數(shù)據(jù)中心、文件夾、主機(jī)到虛擬機(jī)、數(shù)據(jù)存儲(chǔ)每一層都能單獨(dú)配置權(quán)限。一個(gè)用戶可能在虛擬機(jī)列表上有“虛擬機(jī)管理員”角色但如果主機(jī)層沒有權(quán)限他在主機(jī)上創(chuàng)建虛擬機(jī)就會(huì)被拒如果數(shù)據(jù)存儲(chǔ)層沒有權(quán)限他上傳ISO、創(chuàng)建vmdk也會(huì)被拒。我把常見的操作項(xiàng)和對(duì)應(yīng)需要的權(quán)限整理了一下排查時(shí)可以對(duì)照操作需要的典型權(quán)限上傳/下載數(shù)據(jù)存儲(chǔ)文件數(shù)據(jù)存儲(chǔ) - 瀏覽數(shù)據(jù)存儲(chǔ)、分配空間、更新權(quán)限創(chuàng)建/刪除虛擬機(jī)虛擬機(jī) - 創(chuàng)建、刪除主機(jī) - 創(chuàng)建虛擬機(jī)開機(jī)/關(guān)機(jī)/重置虛擬機(jī) - 交互 - 電源操作創(chuàng)建/刪除快照虛擬機(jī) - 快照管理編輯虛擬機(jī)配置虛擬機(jī) - 修改設(shè)備、修改資源配置自動(dòng)啟動(dòng)策略主機(jī) - 配置自動(dòng)啟動(dòng)這張表不是官方的完整特權(quán)列表但足夠應(yīng)對(duì)日常排障。你不需要把所有權(quán)限都背下來(lái)遇到報(bào)錯(cuò)時(shí)先在對(duì)象樹對(duì)應(yīng)層級(jí)查權(quán)限比反復(fù)猜原因高效得多。3.3 自動(dòng)開機(jī)/來(lái)電自動(dòng)啟動(dòng)配置失敗的常見坑搜ESXi相關(guān)熱詞時(shí)很多人會(huì)搜“esxi設(shè)置虛擬機(jī)自動(dòng)開機(jī)”“esxi來(lái)電自動(dòng)啟動(dòng)”。這個(gè)功能本身不涉及什么高級(jí)權(quán)限它藏在“主機(jī) - 管理 - 系統(tǒng) - 自動(dòng)啟動(dòng)”里。如果你當(dāng)前登錄的用戶沒有主機(jī)層級(jí)的管理權(quán)限點(diǎn)“編輯設(shè)置”后系統(tǒng)彈出來(lái)的就是權(quán)限類錯(cuò)誤。更隱蔽的一個(gè)坑是即使你有主機(jī)管理員權(quán)限但ESXi主機(jī)上如果同時(shí)開了鎖定模式vCenter發(fā)起自動(dòng)啟動(dòng)配置也可能失敗。原因是自動(dòng)啟動(dòng)配置需要SSH或主機(jī)本地服務(wù)通道鎖定模式下這些通道被限制vCenter反而無(wú)法完成配置。所以如果你在配置自動(dòng)開機(jī)時(shí)遇到權(quán)限被拒先去檢查是不是開了Lockdown Mode再檢查主機(jī)權(quán)限順序不要反。4. 數(shù)據(jù)存儲(chǔ)與虛擬機(jī)的“權(quán)限被拒絕”根子常在鎖文件這一類問題最有欺騙性因?yàn)楸砻嫔峡词菣?quán)限問題實(shí)際是文件和目錄狀態(tài)異常。我碰到的比例相當(dāng)高尤其是發(fā)生過異常斷電、虛擬機(jī)強(qiáng)制關(guān)閉、HA故障切換之后。4.1 .lck鎖文件為什么刪不掉、刪了又報(bào)錯(cuò)ESXi里每臺(tái)虛擬機(jī)開機(jī)時(shí)會(huì)在虛擬機(jī)目錄下生成.vmx.lck和.vmdk.lck之類的鎖文件正常關(guān)機(jī)后鎖文件自動(dòng)清理。如果虛擬機(jī)異常退出或者你在開機(jī)狀態(tài)下強(qiáng)行刪除了虛擬機(jī)目錄鎖文件就會(huì)殘留。殘留的鎖文件會(huì)導(dǎo)致虛擬機(jī)無(wú)法開機(jī)提示“虛擬機(jī)文件已鎖定”或直接報(bào)權(quán)限被拒絕。這時(shí)很多人選擇手動(dòng)刪除鎖文件但刪除時(shí)也可能被同一句權(quán)限被拒卡住原因在于當(dāng)前登錄用戶沒有數(shù)據(jù)存儲(chǔ)層的文件操作權(quán)限。我的處理建議分兩步。先在數(shù)據(jù)存儲(chǔ)瀏覽器里確認(rèn)鎖文件的名稱和位置然后給當(dāng)前用戶臨時(shí)分配數(shù)據(jù)存儲(chǔ)的管理權(quán)限或者直接用SSH以root身份進(jìn)入/vmfs/volumes對(duì)應(yīng)路徑刪除鎖文件# 定位虛擬機(jī)數(shù)據(jù)存儲(chǔ)路徑 ls -la /vmfs/volumes/datastore1/ # 刪除鎖文件 rm -f /vmfs/volumes/datastore1/your-vm/your-vm.vmx.lck但這里有個(gè)極其重要的前提刪除鎖文件前一定要確認(rèn)沒有其他ESXi主機(jī)或vCenter任務(wù)正在使用這臺(tái)虛擬機(jī)。在HA集群里虛擬機(jī)可能在主機(jī)之間漂移你以為它“沒開機(jī)”其實(shí)它正在另一臺(tái)主機(jī)上運(yùn)行硬刪鎖文件會(huì)導(dǎo)致數(shù)據(jù)損壞。我個(gè)人的操作習(xí)慣是先SSH登錄每一臺(tái)可能運(yùn)行該虛擬機(jī)的主機(jī)用esxcli查看虛擬機(jī)進(jìn)程列表確認(rèn)沒有開機(jī)記錄后再刪除鎖文件。4.2 .vmem內(nèi)存文件和“用戶拒絕訪問內(nèi)存文件權(quán)限”的問題搜ESXi相關(guān)問題時(shí)很多人會(huì)遇到“用戶拒絕訪問內(nèi)存文件權(quán)限怎么辦”這通常指向.vmem文件。vSphere里創(chuàng)建“包含虛擬機(jī)內(nèi)存”的快照時(shí)系統(tǒng)會(huì)在虛擬機(jī)目錄下生成一個(gè)和虛擬機(jī)內(nèi)存大小相同的.vmem文件。比如虛擬機(jī)分配了16GB內(nèi)存快照就會(huì)產(chǎn)生16GB的.vmem文件這個(gè)動(dòng)作對(duì)數(shù)據(jù)存儲(chǔ)空間和目錄權(quán)限都有要求。如果你創(chuàng)建帶內(nèi)存快照時(shí)提示權(quán)限被拒絕先不要急著加權(quán)限先檢查數(shù)據(jù)存儲(chǔ)剩余空間。空間不足時(shí)ESXi可能返回權(quán)限類錯(cuò)誤而不是明確的容量不足提示這算是ESXi本身錯(cuò)誤信息不嚴(yán)謹(jǐn)?shù)囊粋€(gè)坑。確認(rèn)空間充足后再給當(dāng)前用戶補(bǔ)上“虛擬機(jī) - 快照管理”和“數(shù)據(jù)存儲(chǔ) - 更新權(quán)限”兩個(gè)權(quán)限點(diǎn)基本就能解決問題。另外如果你把虛擬機(jī)的.vmem文件下載到本地Windows機(jī)器上處理也可能被系統(tǒng)提示“拒絕訪問”那是Windows NTFS ACL的問題和ESXi無(wú)關(guān)。右鍵文件 - 屬性 - 安全把自己加進(jìn)授權(quán)列表即可不要反過來(lái)去改ESXi端的權(quán)限方向錯(cuò)了白折騰。4.3 VMFS文件系統(tǒng)權(quán)限r(nóng)oot為什么“萬(wàn)能”還有一個(gè)容易混淆的點(diǎn)VMFS數(shù)據(jù)存儲(chǔ)上的文件ESXi Web界面操作走的是對(duì)象權(quán)限模型但SSH進(jìn)入后你看到的是類Unix的權(quán)限位。很多管理員會(huì)拿“root在SSH里能訪問”來(lái)反推“用戶應(yīng)該也能訪問”這個(gè)邏輯是錯(cuò)的。SSH里的root是內(nèi)核級(jí)的超級(jí)用戶它訪問VMFS文件時(shí)會(huì)跳過權(quán)限校驗(yàn)因此root能刪除、讀寫一切文件。但Web Client里的用戶權(quán)限完全由ESXi對(duì)象權(quán)限模型控制即使底層文件權(quán)限是755只要角色不對(duì)照樣權(quán)限被拒。反過來(lái)也一樣Web Client里能訪問的文件SSH里換個(gè)普通用戶可能還是被拒。理解了這一層你就知道為什么很多答案說“用SSH root去刪就好”而另外一些人堅(jiān)持說“給了管理員角色還是不行”——因?yàn)閮蛇吀静皇窃谕粋€(gè)體系里操作。5. vCenter接入與遠(yuǎn)程操作權(quán)限拓?fù)浜蛻{據(jù)失效vCenter環(huán)境下權(quán)限被拒的排查比獨(dú)立主機(jī)更繞因?yàn)槎嗔艘粚印按怼?。很多時(shí)候報(bào)錯(cuò)的不是ESXi本身而是vCenter以某個(gè)身份去連接ESXi時(shí)被拒。5.1 把主機(jī)加入vCenter時(shí)提示權(quán)限被拒添加一臺(tái)ESXi主機(jī)到vCenter時(shí)vCenter會(huì)拿你填寫的root憑據(jù)去主機(jī)上做認(rèn)證。如果賬號(hào)密碼正確但主機(jī)開了鎖定模式或者主機(jī)防火墻阻止了vCenter的訪問端口同樣可能報(bào)權(quán)限類錯(cuò)誤。我的排查順序是先手動(dòng)SSH登錄這臺(tái)主機(jī)確認(rèn)root密碼可用再確認(rèn)鎖定模式狀態(tài)最后在vCenter里重新輸入一次主機(jī)root憑據(jù)并讓vCenter重新驗(yàn)證。很多時(shí)候問題就出在最簡(jiǎn)單的憑據(jù)變更上——有人改過root密碼但vCenter這邊還存著舊密碼。5.2 vCenter用戶角色不足你操作的權(quán)限在哪個(gè)對(duì)象上vCenter里建了集群、數(shù)據(jù)中心、文件夾權(quán)限層層繼承。如果你的vCenter賬戶只在“虛擬機(jī)”層級(jí)有權(quán)限但你要在主機(jī)層級(jí)做維護(hù)、配置自動(dòng)啟動(dòng)、掛載存儲(chǔ)這些操作就會(huì)直接返回權(quán)限被拒。這種問題定位起來(lái)其實(shí)不復(fù)雜。在vCenter界面上你要操作的對(duì)象主機(jī)、數(shù)據(jù)中心、文件夾上右鍵 - 權(quán)限看當(dāng)前賬戶是否有足夠角色。沒有就補(bǔ)上有就繼續(xù)往下查。大多數(shù)權(quán)限不足的問題在這一步就能解決不需要去翻日志。5.3 主機(jī)憑據(jù)失效所有遠(yuǎn)程操作都會(huì)變成“權(quán)限被拒”這是我在生產(chǎn)環(huán)境遇到最多的一種情況。vCenter身上存著每臺(tái)主機(jī)的root憑據(jù)如果主機(jī)的root密碼被外部安全策略修改過vCenter不知道那么vCenter對(duì)主機(jī)發(fā)起的任何操作——巡檢、開虛擬機(jī)、裝補(bǔ)丁、遷移——都可能提示權(quán)限被拒。表現(xiàn)通常是你手動(dòng)SSH能登錄主機(jī)vCenter上看主機(jī)狀態(tài)也正常但一發(fā)起遠(yuǎn)程操作就報(bào)“Permission denied”。因?yàn)関Center是拿它自己的憑據(jù)去認(rèn)證的不是拿你界面上當(dāng)前用戶的憑據(jù)。解決辦法非常直接在vCenter的主機(jī)對(duì)象上重新指定正確的憑據(jù)然后執(zhí)行“重新驗(yàn)證”。跑一次主機(jī)掃描或任務(wù)確認(rèn)憑據(jù)已同步即可。這個(gè)坑之所以隱蔽是因?yàn)樗虴SXi本身的配置毫無(wú)關(guān)系純粹是身份憑據(jù)漂移問題。5.4 用esxcli遠(yuǎn)程執(zhí)行命令被拒怎么辦有些朋友習(xí)慣在vCenter控制臺(tái)上通過SSH到另一臺(tái)主機(jī)執(zhí)行esxcli命令或者用腳本批量調(diào)esxcli操作主機(jī)。esxcli的大部分管理命令默認(rèn)只有root或擁有特定角色的賬戶能用。如果報(bào)權(quán)限被拒先確認(rèn)執(zhí)行賬戶是不是root如果非要用域賬戶必須先在主機(jī)權(quán)限里給該域賬戶分配“管理員”角色。另外esxcli命令如果通過vCenter執(zhí)行同樣受vCenter對(duì)目標(biāo)主機(jī)的憑據(jù)影響優(yōu)先按照5.3的思路排查。6. 一次ESXi升級(jí)操作“權(quán)限被拒”的復(fù)盤鏈路理論講再多不如一個(gè)完整案例。去年幫一家客戶排過一次升級(jí)主機(jī)時(shí)反復(fù)報(bào)權(quán)限被拒的問題整個(gè)鏈路比較有代表性我把它完整復(fù)盤出來(lái)。6.1 現(xiàn)象與初始判斷客戶那邊通過vCenter給一臺(tái)ESXi主機(jī)安裝補(bǔ)丁任務(wù)中斷錯(cuò)誤信息是“Permission to perform this operation was denied”。負(fù)責(zé)的同事第一反應(yīng)是給當(dāng)前vCenter用戶加權(quán)限加完再跑還是同樣報(bào)錯(cuò)。于是問題升級(jí)到我這里。我先看了vCenter的任務(wù)日志確認(rèn)失敗點(diǎn)在主機(jī)的補(bǔ)丁執(zhí)行階段而不是vCenter自身。這說明vCenter已經(jīng)把任務(wù)下發(fā)了但主機(jī)在認(rèn)證或執(zhí)行時(shí)把vCenter的請(qǐng)求拒了。6.2 逐步排除我按順序做了四件事第一確認(rèn)這臺(tái)主機(jī)有沒有開鎖定模式。通過vCenter進(jìn)入主機(jī)“安全配置文件”狀態(tài)是“Normal鎖定模式”但客戶之前從未手動(dòng)開過。這個(gè)狀態(tài)本身不會(huì)直接導(dǎo)致任務(wù)失敗但它會(huì)影響主機(jī)接受遠(yuǎn)程命令的通道。第二SSH直接登錄主機(jī)用root賬戶手動(dòng)跑一遍esxcli命令驗(yàn)證主機(jī)本地權(quán)限沒有問題。esxcli能正常返回主機(jī)版本信息說明主機(jī)側(cè)命令執(zhí)行是通的。第三在vCenter里檢查主機(jī)的管理憑據(jù)。點(diǎn)開主機(jī)對(duì)象一看就知道問題了vCenter里保存的root憑據(jù)還是三個(gè)月前的舊字符串??蛻魹榱伺浜习踩€每個(gè)月跟主機(jī)root密碼變更但vCenter這邊沒有同步更新。第四更新憑據(jù)后重新驗(yàn)證再跑升級(jí)任務(wù)順利通過。6.3 復(fù)盤結(jié)論這個(gè)案例說明一件很關(guān)鍵的事vCenter的權(quán)限拒絕有相當(dāng)比例是“憑據(jù)失效”而不是“權(quán)限配置錯(cuò)誤”。我遇到過很多人把權(quán)限模型翻了個(gè)底朝天最后發(fā)現(xiàn)只是密碼變更沒有同步到vCenter里。排查順序上先看vCenter里的主機(jī)憑據(jù)是否有效比去改用戶角色快得多。另外一個(gè)啟發(fā)是鎖定模式對(duì)vCenter操作也有影響但影響面沒有想象中大。關(guān)鍵在于主機(jī)是否處于鎖定模式以及vCenter當(dāng)前角色是否有權(quán)管理該主機(jī)。如果你的環(huán)境里有安全策略要求開啟鎖定模式一定要同時(shí)確保vCenter的管理憑據(jù)和角色都正確否則日常運(yùn)維會(huì)處處碰壁。7. 日常少踩“權(quán)限被拒”的幾條習(xí)慣性操作前面講的都是排障但作為運(yùn)維更應(yīng)該在日常運(yùn)維里減少這類問題出現(xiàn)的概率。這里分享幾條我個(gè)人堅(jiān)持的習(xí)慣算不上什么高深技巧但確實(shí)幫我省了很多事。7.1 給普通用戶分權(quán)限r(nóng)oot留作救急很多小團(tuán)隊(duì)習(xí)慣所有人共用root結(jié)果每次權(quán)限問題都分不清是誰(shuí)干的。我建議至少區(qū)分兩類賬戶一類是日常維護(hù)賬號(hào)權(quán)限按需分配能完成備份、開關(guān)機(jī)、快照等常規(guī)操作另一類是root只用于主機(jī)級(jí)安裝、升級(jí)、底層修復(fù)這種高風(fēng)險(xiǎn)的救急場(chǎng)景。這樣權(quán)限被拒最多發(fā)生在個(gè)別用戶身上不會(huì)影響整臺(tái)主機(jī)的維護(hù)通道。7.2 定期檢查鎖定模式和管理憑據(jù)我每個(gè)月做巡檢時(shí)會(huì)看兩項(xiàng)一是主機(jī)鎖定模式當(dāng)前狀態(tài)二是vCenter里保存的主機(jī)憑據(jù)是否仍然有效?;▋煞昼娋湍鼙苊鈩e人半夜改完密碼后第二天vCenter所有任務(wù)全掛的局面。命令也很簡(jiǎn)單SSH登錄主機(jī)后執(zhí)行esxcli system lockdown get esxcli system account list返回結(jié)果看一眼就夠。7.3 快照、升級(jí)這類高危操作前先驗(yàn)證權(quán)限不要等到跑任務(wù)失敗才去查權(quán)限。在測(cè)試環(huán)境或非核心主機(jī)上先用同一賬戶跑一次快照創(chuàng)建、一次數(shù)據(jù)存儲(chǔ)上傳、一次esxcli查詢?nèi)?xiàng)都通過后再對(duì)生產(chǎn)環(huán)境操作。這個(gè)小動(dòng)作成本很低但能把大部分權(quán)限問題提前暴露掉。7.4 最后分享一個(gè)個(gè)人習(xí)慣我排ESXi權(quán)限問題時(shí)手邊常備一份操作和對(duì)應(yīng)權(quán)限的清單就是第三章那張表的擴(kuò)充版。每次遇到權(quán)限被拒我先不急著去猜而是把“操作 - 對(duì)象 - 所需權(quán)限”三個(gè)點(diǎn)對(duì)齊大多數(shù)問題在十分鐘內(nèi)就能定位。ESXi的“權(quán)限被拒”本質(zhì)上是一個(gè)信息模糊但指向明確的錯(cuò)誤。只要你不慌按層排查它其實(shí)比很多無(wú)頭緒的故障好對(duì)付得多。希望這篇文章能幫你節(jié)省幾個(gè)本該安穩(wěn)睡覺的夜晚。