本文介紹通過Bastionhost營運時,可能遇到的問題及解決方案。
SSH營運相關報錯
報錯:Invalid host fingerprint
V3.2版本會記錄主機的唯一指紋,若該主機的主機指紋發生變化,會導致認證失敗。您可以在Bastionhost的主機資訊中將其清空後再嘗試登入。具體操作,請參見清除主機指紋。
主機指紋可能變化的情境如下:
重裝作業系統:如果重新安裝了作業系統,SSH服務可能會被重設,導致主機指紋改變。
更換SSH金鑰組:如果伺服器的SSH金鑰組被替換,主機指紋也會隨之改變。
使用不同的密碼編譯演算法:更改SSH伺服器配置以使用不同的密碼編譯演算法或金鑰交換方法也可能導致主機指紋變化。
SSH服務的配置更改:如果在SSH伺服器上進行了配置更改,特別是與密鑰和身分識別驗證相關的設定,可能會影響主機指紋。
複製或遷移伺服器:在某些情況下,如果您從一台機器複製或遷移到另一台機器,新的執行個體可能產生新的SSH密鑰。
虛擬機器快照恢複:如果您從快照恢複虛擬機器,SSH密鑰可能會隨之回到快照時的狀態。
SSH伺服器軟體更新:在某些情況下,SSH伺服器軟體的更新可能會導緻密鑰配置的變化,從而影響主機指紋。
認證失效或到期:如果使用基於認證的SSH密鑰,認證的失效或更新也可能導致主機指紋變化。
報錯:connect to [Default Network] xx.xx.xx.xx:xx failed, Connection refused(111)
通常是由於網路不可達,情況如下:
Bastionhost所配置的主機協議連接埠有誤。請您查看Bastionhost相關連接埠是否配置正確,具體操作,請參見配置Bastionhost。
安全性群組或防火牆等規則禁止了Bastionhost對特定連接埠的訪問。查看Cloud Firewall開關是否開啟對Bastionhost執行個體的保護以及對應安全性原則是否有限制攔截,具體操作,請參見Cloud Firewall和營運資訊安全中心(Bastionhost)聯合部署存取原則的最佳實務。
報錯:SSH protocol handshake error,Socket error:Connection reset by peer
通常是由於存在防火牆或配置策略阻斷,您可以通過以下方法排查。
檢查伺服器的/etc/hosts.allow檔案是否存在BastionhostIP,如無,請加入BastionhostIP。同時檢查/etc/hosts.deny檔案是加入BastionhostIP,如有,請刪除。
檢查Bastionhost到伺服器之間是否有裝置攔截,是否完全允許存取Bastionhost訪問。更多關於Bastionhost與伺服器串連問題,請參見串連伺服器相關問題。
報錯:Permission denied,please try again
許可權被拒絕,可能的原因如下:
伺服器的帳號密碼錯誤。
確認所登入的帳號(例如root)是否開啟了登入許可權(即ssh_config中配置PermitRootLogin=yes)。
查看伺服器的日誌記錄/var/log/secure與/var/log/messages是否設定了其他登入許可權,例如需要雙因子驗證才能登入。
報錯:ssh connect target xx failed (ssh: rejected: administratively prohibited (open failed))
可能是因為Proxy 伺服器串連問題,例如Proxy 伺服器密碼到期等。
RDP營運相關報錯
報錯:remote desktop service CALs request failed
您可以參考以下方法進行排查:
檢查伺服器的遠端桌面許可是否到期(您可以通過其他windows串連該伺服器進行測試)。
檢查伺服器是否開啟允許遠端桌面許可權。
報錯:NLA or TLS security negotiation failure, Please check the username and password
首先,通過Mstsc(Microsoft Terminal Services Client)繞過Bastionhost直接遠端連線伺服器,以驗證是否能成功登入。如果仍然無法登入,請參考以下方法進行排查:
情況一:檢查Windows系統遠程設定是否勾選“只允許通過網路層級驗證”,若此項被勾選上,且滿足以下三項之一,則通過Bastionhost自動登入Windows會報錯。
Bastionhost中未託管Windows的帳號密碼。
未將主機帳號授權給營運員。
帳號密碼填寫錯誤。
情況二:ECS伺服器上是否安裝了遠端桌面工作階段主機角色服務(安裝該服務後支援大於兩個以上主機帳號同時登入),若該服務已到期,則預設是RDP協議不可用,但可能存在本機快取了伺服器憑證,您可以多環境驗證測試。更多資訊,請參見Windows系統的ECS執行個體如何配置多使用者登入。
情況三:檢查是否僅Administrator管理員帳號可以正常串連,而普通帳號無法串連。
如果僅普通帳號無法串連,可能是該帳號未被授予遠端存取許可權(通常管理員預設有此許可權,但普通使用者需要單獨授予)。您可以在Windows系統的遠端桌面添加需要授權的使用者。
資料庫營運常見報錯
報錯:[SQL Server Native Client 11.0]在TDS流中的協議錯誤(0)
關閉資料庫伺服器串連或者退出Navicat,重新開啟後嘗試。如果仍然報錯,建議您更換串連工具嘗試。
報錯:bad handshake
您可以參考以下方法進行排查。
Bastionhost介面儲存的資料庫地址是網域名稱,使用者資料庫串連填寫的資料庫地址為IP導致。
資料庫賬戶存在空格導致。
DBeaver報錯可能是Bastionhost到資料庫網路不通,您需要檢查下白名單。更多Bastionhost串連資料庫問題,請參見串連資料庫相關問題。
Navicat 11報錯:Lost connection to MySQL server at 'reading initial communication packet', system error: 0
Navicat版本不相容導致,建議使用Navicat For MySQL 12或15。用戶端遠端連線工具,請參見用戶端遠端連線工具及版本說明。
Dbeaver串連Mysql 5.6報錯:Unknown system variable 'transaction_isolation'
DBeaver不相容MySQL 5.6版本。您可以通過以下方法處理:
修改資料庫協議驅動為mariaDB進行串連。
使用Navicat資料庫連接工具串連。
DBeaver報錯:Exhausted available authentication methods
可能是資料庫營運令牌失效,您可以重新申請令牌串連。
DBeaver報錯:arraycopy: last source index 262244 out of bounds for byte
DBeaver串連工具不相容導致,建議使用官網推薦串連工具。更多資訊,請參見用戶端遠端連線工具及版本說明。