本文介紹您在使用密碼或密鑰時的相關問題及解決方案。
為什麼配置了密鑰或私密金鑰認證登入伺服器,登入時仍提示輸入密碼?
Bastionhost訪問伺服器時,密鑰認證方式的優先順序高於密碼認證,如果密鑰認證失敗,會自動跳轉到密碼認證方式。如果您的主機賬戶只配置了密鑰且沒有託管密碼,密鑰認證失敗時會提示您輸入伺服器的登入密碼。
您可以通過以下方式進行排查:
請確保在Bastionhost上正確配置了私密金鑰,且通過該私密金鑰可以正常訪問伺服器,您可以通過使用私密金鑰登入ECS雲端服務器的方式進行驗證。產生密鑰及在Bastionhost上設定密鑰認證的操作,請參見如何產生密鑰並設定密鑰認證訪問伺服器?。
說明SSH私密金鑰認證配置方式,請參見設定SSH私密金鑰認證。
檢查OpenSSH是否升級至9.0及以上版本,或作業系統為Rocky 9、Ubuntu 22.04、Mac 13.0.1及以上版本等。
由於以上情況預設禁用了ssh-rsa公開金鑰簽名演算法,您可以配置相應檔案,手動啟用本地用戶端或遠程伺服器ssh-rsa公開金鑰簽名演算法的參數。
使用用戶端(Mac 13.0.1及以上版本)訪問Bastionhost,您可以參考如下步驟啟動用戶端ssh-rsa公開金鑰簽名演算法。
在您的伺服器執行以下命令,開啟ssh_config設定檔。
vim /etc/ssh/ssh_config
在ssh_config設定檔中,添加如下配置內容並儲存。
HostKeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
重啟sshd服務。
systemctl restart sshd
使用Bastionhost訪問伺服器(Rocky 9、Ubuntu 22.04及以上版本),您可以參考如下步驟啟動遠程伺服器ssh-rsa公開金鑰簽名演算法。
在您的伺服器執行以下命令,開啟sshd_config設定檔。
vim /etc/ssh/sshd_config
在sshd_config設定檔中,添加如下配置內容並儲存。
HostKeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
重啟sshd服務。
systemctl restart sshd
通過SSH方式營運登入Bastionhost時,能否使用密鑰作為認證方式?
營運人員如何修改Bastionhost使用者密碼?
您可以通過以下方式修改Bastionhost使用者密碼:
聯絡Bastionhost執行個體管理員進行修改。
登入Bastionhost執行個體後,自行修改您的登入密碼。具體操作,請參見營運員安全性原則。
使用者密碼到期後,是否影響使用者公開金鑰的方式登入Bastionhost?
密鑰認證不受影響。
如何產生密鑰並設定密鑰認證訪問伺服器?
Bastionhost支援RSA格式密鑰和Ed25519格式密鑰。下面以root帳號為例,為您介紹如何產生RSA格式的密鑰。
在ECS資產,使用以下命令切換到.ssh目錄下。
cd ~/.ssh/
在.ssh目錄下,執行如下命令,產生RSA密鑰。
ssh-keygen -t RSA -m PEM
執行完成後,在目前的目錄會產生RSA金鑰組,即私密金鑰id_rsa和公開金鑰id_rsa.pub。
將私密金鑰id_rsa內容複寫到Bastionhost主機賬戶。具體操作,請參見配置主機賬戶。
執行如下命令,將公開金鑰id_rsa.pub拷貝至authorized_keys目錄中。
cp id_rsa.pub authorized_keys
CreateHostAccount介面傳參時,密鑰需使用base64編碼。
密鑰認證優先順序最高。當密鑰認證失敗時,會切換到密碼驗證方式。