簡體   English   中英

為什么 Google Cloud Compute Engine 實例在重啟后拒絕 ssh 連接?

[英]Why Google Cloud Compute Engine instance gives ssh connection refused after restart?

我停止並重新啟動了一個 ubuntu 14.04 Google Cloud Compute Engine 實例,現在我的 ssh 連接被拒絕:

ssh: connect to host 146.148.114.98 port 22: Connection refused

這已經發生過一次,我認為機器有問題,我刪除它並重新創建它並再次開始工作。 我不想每次都重新創建實例。 google cloud 的 ssh 故障排除頁面比較亂。 我的防火牆規則似乎沒問題。 有人對此有解決方案嗎?

NAME                    NETWORK  SRC_RANGES    RULES                         SRC_TAGS  TARGET_TAGS
default-allow-http      default  0.0.0.0/0     tcp:80                                  http-server
default-allow-https     default  0.0.0.0/0     tcp:443                                 https-server
default-allow-icmp      default  0.0.0.0/0     icmp
default-allow-internal  default  10.128.0.0/9  tcp:0-65535,udp:0-65535,icmp
default-allow-rdp       default  0.0.0.0/0     tcp:3389
default-allow-ssh       default  0.0.0.0/0     tcp:22

這是輸出: ps aux | grep ssh ps aux | grep ssh

root        29  0.0  0.4  55184  2860 ?        Ss   11:26   0:00 /usr/sbin/sshd -p 22 -o AuthorizedKeysCommand=/google/devshell/authorized_keys.sh -o Author
izedKeysCommandUser=root
root       183  0.0  0.9  82692  5940 ?        Ss   11:26   0:00 sshd: fbeshox [priv]                                                                       

fbeshox    218  0.0  0.7  82692  4424 ?        S    11:26   0:00 sshd: fbeshox@pts/0                                                                        

fbeshox    522  0.0  0.3  12728  2200 pts/1    S+   12:12   0:00 grep ssh

這里是 ssh 連接嘗試的詳細結果。

ssh -i .ssh/keyname username@130.211.53.51 -vvv
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/xxxx/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 130.211.53.51 [130.211.53.51] port 22.
debug1: connect to address 130.211.53.51 port 22: Connection refused
ssh: connect to host 130.211.53.51 port 22: Connection refused

Ubuntu 上默認安裝的安全工具sshguard可能會干擾您的連接。 基本上 sshguard 可能錯誤地認為您的 IP 地址正在“攻擊”您的實例並阻止了該 IP。

如果您可以從其他位置登錄,例如 Cloud Console 提供的 Web SSH,請嘗試使用sudo iptables -S查看 sshguard 創建的實例上是否有任何防火牆規則(不同於 GCE 防火牆)。 如果是這樣,請嘗試禁用 sshguard 或將您的 IP 地址添加到白名單 ( http://www.sshguard.net/docs/whitelist/ )。

我知道這是一個老問題,但今天我遇到了類似的問題,問題很簡單——重啟后實例的 IP 發生了變化——所以我不得不相應地更新 ssh 字符串

在您更改默認區域或區域后,通常會發生此問題。 然后,您必須通過 sudo gcloud compute config-ssh 更新元數據中的 ssh 密鑰

您還可以在 Compute Engine | 下查看 Web 界面中的更改。 元數據 | SSH 密鑰。

嘗試使用不同的用戶名通過 SSH 連接到實例。Google Compute 有時有點不穩定。 嘗試使用 Compute Engine 中的 VM 實例頁面通過 SSH 連接到實例。 如果 SSH 花費太多時間並拒絕連接,則在 SSH 中使用不同的用戶名登錄。 您可以使用 SSH 窗口右上角的設置圖標以不同的名稱登錄。 如果這些都不順利,我會建議你重新創建一個實例,因為我的經驗也是 Google Compute Engine 實例在 SSH 可訪問性方面不穩定並且容易產生問題。最好是使用 putty 作為 SSH 進入 Compute Engine 的客戶端,而不是 Google 提供的 SSH 終端。 讓我知道這是否對您有幫助:)

我知道當機器停止並安裝該磁盤時,從控制台分離磁盤后出現了我的問題。 首先卸載磁盤,然后將其分離。 再也沒有看到這個問題。

還要確保您沒有遞歸地修改/etc文件夾的權限。

例如:

chmod -R 775 /etc

這將阻止您重新登錄到 VM,即使是從 Web 控制台和 gcloud cli 也是如此。

相反,在更精細的級別上修改權限,例如/etc/nginx等。

我遇到了同樣的問題,並通過首先通過瀏覽器 SSH (來自“VM 實例”Web 概述)連接到 VM 來解決它,這也失敗了,然后選擇提供的選項,即在沒有 Cloud Identity-Aware Proxy的情況下重試有效。

之后所有 SSH 連接再次工作(在瀏覽器和本地 shell 中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM