解決 SSH 無法登入 Google Compute Engine VM 出現 Permission denied

更新於 發佈於 閱讀時間約 6 分鐘

前情提要

有一台遠古的 Google Cloud Engine VM 有點問題, OS 是 Debian 7 ,我要進去查看問題在哪邊,用 gcloud compute ssh 指令 SSH 進去,不過卻跳出 Permission denied (publickey) 的錯誤,Log 如下

username@host:~/.ssh % gcloud compute ssh --zone zone instance_name --project project
username@192.168.0.1: Permission denied (publickey).

Recommendation: To check for possible causes of SSH connectivity issues and get
recommendations, rerun the ssh command with the --troubleshoot option.

gcloud compute ssh instance_name --project=project --zone=zone --troubleshoot

Or, to investigate an IAP tunneling issue:

gcloud compute ssh instance_name --project=project --zone=zone --troubleshoot --tunnel-through-iap

ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].

這問題以前都沒遇過就只能 Google 看看,從外太空搜尋到內子宮,搜尋結果大概是兩個方向

硬碟空間滿了

這篇有提到用 gcloud compute instances get-serial-port-output 看 system log 會有 No space left on device 的 Log

但是我看我的 VM 沒有這條 log ,不過因為沒辦法登入所以也沒辦法確認硬碟空間是不是用完。

可能有什麼阻擋了 SSH 連線

這篇一樣是 SSH 無法連線的問題,有提到可以用 Serial Console 登入來救援

是要用 startup script 在啟動時增加一個 user ,不過照做之後,Serial Console 卻沒辦法跳出登入的 prompt

檢查 disk 容量

此時進度又回到原點,不過發現 startup script 這個好東西

startup script 可以在啟動時執行一個 script 而且是 root 身份,所以就先用 startup script 在啟動時跑 df 看看容量(跑出的結果會出現在 Serial Console)

df 結果使用量只用了 50% 左右,所以可以排除硬碟空間用完的問題

想辦法開啟 SSH 密碼登入

之前已經有用 startup script 加了 user ,所以就想說何不把 SSH 密碼登入的功能打開

所以又用 startup script 去編輯 /etc/ssh/sshd_config

這時用 sed -i “51d” /etc/ssh/sshd_config刪掉 51 行的 PasswordAuthentication no

再用 echo PasswordAuthentication yes >> /etc/ssh/sshd_config 這條指打開 SSH 密碼登入功能

然後 reset VM 就成功開啟 SSH 密碼登入,就可以用剛剛設定的 user 登入看一下問題

發現真正的問題

可以登入後就心安多了,根據原本的 Permission denied 的錯誤,就想說應該是 ssh key 的問題

所以就到自己的帳號下把所有的 SSH key 刪掉,重新把本機的 key 上傳上去,but 還是沒辦法用 SSH key 登入

這時就矇了,只能再繼續查,此時查到說 SSH 可以用 -vvv 來啟用 debug mode 看更多錯誤訊息

debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /Users/username/.ssh/google_compute_engine RSA SHA256: explicit
debug1: send_pubkey_test: no mutual signature algorithm
debug2: we did not send a packet, disable method

看起來 debug1: send_pubkey_test: no mutual signature algorithm 這段最有問題,就拿去 Google 一下

查到這篇,原來 server 上的 SSH 版本為 OpenSSH_6.0p1 , Mac 上的版本是 OpenSSH_9.4p1 新版的 SSH Client 預設是不會使用 SSH-RSA 演算法,因為這個演算法有安全疑慮,所以要在 ~/.ssh/config 加上

PubkeyAcceptedAlgorithms +ssh-rsa

這樣來開啟 SSH-RSA 演算法

開啟後,就可以正常使用 SSH Key 登入主機

結語

從外太空查到內子宮,花了一整天的時間在搞這個,結果只要一行 code 就能解決

不過這就是經驗,走過這一輪,Google Cloud 上什麼怪招都用上也算是小有收穫 😂




如果你喜歡我的文章,你可以使用以下的方式支持我

👀 追蹤我的社群帳號

👏 Vocus 支持我

  1. 追蹤
  2. 留言、收藏、按喜歡
  3. 贊助
raw-image

💰 使用下面的推薦連結註冊或申辦服務


留言
avatar-img
留言分享你的想法!
avatar-img
瘋人院院長的沙龍
18會員
56內容數
這是一系列關於院長在加拿大生活的大小事,希望大家會喜歡 😊。頭像底圖由 Adobe Firefly 產生。
2024/03/05
這次 Apple 直接推出新聞稿更新,更新了 13 吋 15 吋 MacBook Air 。從原本的 M2 晶片換成 M3 晶片,同時也有小升級 Wi-Fi 到 Wi-Fi 6E ,無線網路的連線變得更快了。最後院長也來預測一下 Apple 2024 春季發表會即將發表的全新 iPad 產品線。
Thumbnail
2024/03/05
這次 Apple 直接推出新聞稿更新,更新了 13 吋 15 吋 MacBook Air 。從原本的 M2 晶片換成 M3 晶片,同時也有小升級 Wi-Fi 到 Wi-Fi 6E ,無線網路的連線變得更快了。最後院長也來預測一下 Apple 2024 春季發表會即將發表的全新 iPad 產品線。
Thumbnail
2023/12/22
最近有專案需求要在 Web 上進行一個掃描條碼辨識的動作,做了一些功課,有 Open Source 方案跟商業解決方案,整理起來分享給大家。
Thumbnail
2023/12/22
最近有專案需求要在 Web 上進行一個掃描條碼辨識的動作,做了一些功課,有 Open Source 方案跟商業解決方案,整理起來分享給大家。
Thumbnail
2023/12/10
Steam Deck 迎來大改版,最重要的更新就是換成 OLED 螢幕。使用 OLED 螢幕帶來更好看的顏色,大小還小幅提升到 7.4 吋。關係續航力的電池也從 40 瓦小時升級到 50 瓦小時, 3A 大作都可以多玩一小時呢!這麼香的更新,怎麼不給他買下去呢 😄
Thumbnail
2023/12/10
Steam Deck 迎來大改版,最重要的更新就是換成 OLED 螢幕。使用 OLED 螢幕帶來更好看的顏色,大小還小幅提升到 7.4 吋。關係續航力的電池也從 40 瓦小時升級到 50 瓦小時, 3A 大作都可以多玩一小時呢!這麼香的更新,怎麼不給他買下去呢 😄
Thumbnail
看更多
你可能也想看
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
在處理Linux時,遇到了Kubuntu 22.04的SSH連線問題。本文將介紹如何完整移除之前裝過的SSH並重新安裝以解決問題。
Thumbnail
在處理Linux時,遇到了Kubuntu 22.04的SSH連線問題。本文將介紹如何完整移除之前裝過的SSH並重新安裝以解決問題。
Thumbnail
當您在vCenter上發現Root使用者密碼過期的訊息時,該如何解決呢?本文將介紹如何透過SSH進入系統並立即變更密碼,以及如何將密碼設定成永不過期,避免再次遇到此問題。
Thumbnail
當您在vCenter上發現Root使用者密碼過期的訊息時,該如何解決呢?本文將介紹如何透過SSH進入系統並立即變更密碼,以及如何將密碼設定成永不過期,避免再次遇到此問題。
Thumbnail
在企業內部環境中,對服務和API的安全且高效率的存取至關重要。本文探討了GCP提供的 Private GoogleAccess、Private Service Connect、Serverless VPC Access、Private Services Access 的區別,以及它們如何使組織受益。
Thumbnail
在企業內部環境中,對服務和API的安全且高效率的存取至關重要。本文探討了GCP提供的 Private GoogleAccess、Private Service Connect、Serverless VPC Access、Private Services Access 的區別,以及它們如何使組織受益。
Thumbnail
Google Cloud Engine VM 有點問題, OS 是 Debian 7 ,我要進去查看問題在哪邊,用 gcloud compute ssh 指令 SSH 進去,不過卻跳出 Permission denied (publickey) 的錯誤,經過一番排查終於解決 SSH 無法登入的問題。
Thumbnail
Google Cloud Engine VM 有點問題, OS 是 Debian 7 ,我要進去查看問題在哪邊,用 gcloud compute ssh 指令 SSH 進去,不過卻跳出 Permission denied (publickey) 的錯誤,經過一番排查終於解決 SSH 無法登入的問題。
Thumbnail
有遇過 pull 自己的私有倉庫無法 pull 下來的問題嗎,今天來教大家如何解決無法 pull image 問題,可暫時解決狀況 錯誤訊息 出現以下訊息代表,這個 docker registry 並沒有經過 https 憑證,所以 docker 會把它擋下來 Error response f
Thumbnail
有遇過 pull 自己的私有倉庫無法 pull 下來的問題嗎,今天來教大家如何解決無法 pull image 問題,可暫時解決狀況 錯誤訊息 出現以下訊息代表,這個 docker registry 並沒有經過 https 憑證,所以 docker 會把它擋下來 Error response f
Thumbnail
AWS AMI Oracle Linux 7 包成 AMI 後,使用 AMI 啟動新 EC2 會遇到 Instance status checks fail 的問題 查看 system log 看到 EC2 開機時沒有抓到 eth0 ,導致 Instance status checks fai
Thumbnail
AWS AMI Oracle Linux 7 包成 AMI 後,使用 AMI 啟動新 EC2 會遇到 Instance status checks fail 的問題 查看 system log 看到 EC2 開機時沒有抓到 eth0 ,導致 Instance status checks fai
Thumbnail
👨‍💻簡介 今天早上在下kubectl get pods時,突然跳出了以下錯誤 Unable to connect to the server: x509: certificate has expired or is not yet valid
Thumbnail
👨‍💻簡介 今天早上在下kubectl get pods時,突然跳出了以下錯誤 Unable to connect to the server: x509: certificate has expired or is not yet valid
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News