Ssh

無法 ssh 到 GCE:“權限被拒絕(公鑰)”

  • September 1, 2020

我在 Google Compute Engine 中通過 Bitnami 創建了一個 VM。以前,我可以通過 Bitnami Web 界面進行 ssh。我試圖通過我的 Mac 上的終端​​進行 ssh,但不斷收到Permission denied (publickey)錯誤消息。然後我刪除了伺服器和我的 Mac 上的所有密鑰,並從 bitnami 下載了 pem 文件,並使用-i了連接選項,但問題仍然存在。

ssh -i bitnami-gce.pem xxx@1xx.1xx.5x.1xx -v

完整的調試資訊:

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to 1xx.1xx.5x.1xx [1xx.1xx.5x.1xx] port 22.
debug1: Connection established.
debug1: identity file bitnami-gce.pem type -1
debug1: identity file bitnami-gce.pem-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Debian-4~bpo70+1
debug1: match: OpenSSH_6.6.1p1 Debian-4~bpo70+1 pat OpenSSH*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA <RSA KEY>
debug1: Host '1xx.1xx.5x.1xx' is known and matches the RSA host key.
debug1: Found key in /Users/xxx/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: bitnami-gce.pem
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

我無法通過 ssh 連接到主機。所以現在不能向伺服器發送任何密鑰。如何解決這個問題?

編輯:我嘗試通過Google網路控制台進行 ssh,我可以做到。誰能告訴我從任何地方 ssh 的確切步驟?我更喜歡簡單的使用者名和密碼方式,如何配置它?

在我能夠通過 Google Web 控制台進行 ssh 後,我執行了以下步驟來解決此問題:

  1. 使用生成 ssh 密鑰

ssh-keygen 2. 複製 key.pub 文件內容 3. 將內容附加到~/.ssh/authorized_keys文件

sudo nano ~/.ssh/authorized_keys

由於使用者,我面臨同樣的情況。在 google web shh 上,我的使用者名顯示了我電子郵件的第一部分。所以,我正在嘗試這樣的 ssh

ssh <first_part_of_gmail>@google_vm_external_ip

後來,我發現,google 會根據您在 google vm 設置中設置的 ssh 密鑰創建一個使用者。因此,首先在公鑰末尾檢查使用者,然後嘗試以下操作

ssh <user_name_at_the_end_of_public_key>@google_vm_external_ip

引用自:https://serverfault.com/questions/641453