[英]Google Compute Engine Unable to Access VM
從您收到“權限被拒絕(公鑰)”的錯誤消息來看,這可能有幾個原因。
此錯誤的一些最常見原因:
要解決此問題,請嘗試以下方法之一:
使用 Google Cloud 控制台或 Google Cloud CLI 連接到您的 VM。 有關詳細信息,請參閱連接到 VM。
將您的 SSH 密鑰添加到 OS Login。 有關詳細信息,請參閱向使用 OS Login 的 VM 添加密鑰。
禁用操作系統登錄。 有關詳細信息,請參閱禁用操作系統登錄。
您使用存儲在 OS Login 配置文件中的 SSH 密鑰連接到未啟用 OS Login 的 VM。 如果您禁用 OS Login,您的 VM 將不接受存儲在您的 OS Login 配置文件中的 SSH 密鑰。 如果您不確定是否啟用了操作系統登錄,請參閱檢查是否配置了操作系統登錄。
要解決此問題,請嘗試以下方法之一:
使用 Google Cloud 控制台或 Google Cloud CLI 連接到您的 VM。 有關詳細信息,請參閱連接到 VM。
啟用操作系統登錄。 有關更多信息,請參閱啟用操作系統登錄。
將您的 SSH 密鑰添加到元數據。 有關詳細信息,請參閱將 SSH 密鑰添加到使用基於元數據的 SSH 密鑰的 VM。
VM 啟用了 OS Login,但您沒有足夠的 IAM 權限來使用 OS Login。 要連接到啟用了 OS Login 的 VM,您必須具有 OS Login 所需的權限。 如果您不確定是否啟用了操作系統登錄,請參閱檢查是否配置了操作系統登錄。
要解決此問題,請授予所需的 OS Login IAM 角色。
要解決此問題,請嘗試以下方法之一:
使用 Google Cloud 控制台或 Google Cloud CLI 連接到您的 VM。 有關詳細信息,請參閱連接到 VM。
將您的 SSH 密鑰重新添加到元數據。 有關詳細信息,請參閱將 SSH 密鑰添加到使用基於元數據的 SSH 密鑰的 VM。
您使用第三方工具連接,並且您的 SSH 命令配置錯誤。 如果您使用 ssh 命令進行連接,但未指定私鑰的路徑,或者您指定的私鑰路徑不正確,則您的 VM 會拒絕您的連接。
要解決此問題,請嘗試以下方法之一:
ssh -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP
替換以下內容:
PATH_TO_PRIVATE_KEY:您的私有 SSH 密鑰文件的路徑。
USERNAME:連接到實例的用戶的用戶名。 如果您在元數據中管理 SSH 密鑰,則用戶名是您在創建 SSH 密鑰時指定的用戶名。 對於操作系統登錄帳戶,用戶名在您的 Google 個人資料中定義。
EXTERNAL_IP:VM 的外部 IP 地址。
使用 Google Cloud 控制台或 Google Cloud CLI 連接到您的 VM。 當您使用這些工具進行連接時,Compute Engine 會為您管理密鑰創建。 有關詳細信息,請參閱連接到 VM。
您的 VM 的來賓環境未運行。 如果這是您第一次連接到 VM 並且來賓環境未運行,則 VM 可能會拒絕您的 SSH 連接請求。
要解決此問題,請執行以下操作:
重新啟動虛擬機。
在 Google Cloud 控制台中,查看串口 output 中的系統啟動日志,以確定來賓環境是否正在運行。 有關更多信息,請參閱驗證來賓環境。
如果來賓環境未運行,請通過克隆 VM 的引導磁盤並使用啟動腳本手動安裝來賓環境。
sshd 守護程序未運行或未正確配置。 sshd 守護進程啟用 SSH 連接。 如果配置錯誤或未運行,則無法連接到 VM。
要解決此問題,請嘗試以下操作:
查看您的操作系統的用戶指南以確保您的 sshd_config 設置正確。
如果您之前修改了 VM 上的文件夾權限,請將其更改回默認值:
700.ssh目錄
644 的公鑰,存儲在 ~/.ssh/authorized_keys 文件夾中
以 root 用戶身份連接到 VM 的串行控制台,並修改文件夾權限:
chmod 700 /home/USERNAME/.ssh; chmod 644 /home/USERNAME/.ssh/authorized_keys
將USERNAME替換為您要修改文件夾權限的用戶名。
VM 的啟動磁盤已滿。 建立 SSH 連接后,來賓環境將會話的公共 SSH 密鑰添加到 ~/.ssh/authorized_keys 文件。 如果磁盤已滿,則連接失敗。 要解決此問題,請執行以下一項或多項操作:
通過使用串行控制台進行調試以識別沒有剩余空間錯誤,確認引導磁盤已滿。
調整磁盤大小。
如果您知道哪些文件正在使用磁盤空間,請創建一個啟動腳本來刪除不必要的文件並釋放空間。 在 VM 啟動並連接到它后,刪除啟動腳本元數據。
$HOME、$HOME/.ssh 或 $HOME/.ssh/authorized_keys 的權限或所有權錯誤。
所有權:來賓環境將用戶的公共 SSH 密鑰存儲在 $HOME/.ssh/authorized_keys 文件中。 $HOME目錄、$HOME/.ssh目錄、authorized_keys文件的屬主必須與連接VM的用戶相同。
Unix 權限:來賓環境需要以下 Unix 權限:
從 Google Cloud 控制台或gcloud CLI 連接到 VM 時,可能會出現以下錯誤:
Connection Failed
We are unable to connect to the VM on port 22.
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].
出現這些錯誤的原因有多種。 以下是一些最常見的錯誤原因:
要解決此問題,請等到 VM 完成啟動並再次嘗試連接。
要解決此問題,請檢查您的防火牆規則並重新添加或重新配置 default-allow-ssh。
要解決此問題,請使用以下命令創建自定義防火牆規則,以允許 sshd 運行的端口上的 tcp 流量:
gcloud compute firewall-rules create FIREWALL_NAME \
--allow tcp:PORT_NUMBER
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.