Ssh
無法 ssh 到 GCE:“權限被拒絕(公鑰)”
我在 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 後,我執行了以下步驟來解決此問題:
- 使用生成 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