Nie można ssh do GCE: „Odmowa zezwolenia (publickey)”

20

Stworzyłem maszynę wirtualną przez Bitnami w Google Compute Engine. Wcześniej mogłem ssh za pośrednictwem interfejsu sieciowego Bitnami. Próbowałem ssh przez terminal na moim komputerze Mac, ale ciągle pojawiał się Permission denied (publickey)błąd. Następnie usunąłem wszystkie klucze z serwera i komputera Mac i pobrałem plik pem z bitnami i użyłem -iopcji połączenia, ale problem nadal występuje.

ssh -i bitnami-gce.pem [email protected] -v

Pełne informacje debugowania:

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 [email protected] none
debug1: kex: client->server aes128-ctr [email protected] 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).

Nie mogę ssh do hosta. Nie można teraz wysyłać żadnych kluczy do serwera. Jak to rozwiązać?

Edycja: Próbowałem ssh za pośrednictwem konsoli internetowej Google i mogłem to zrobić. Czy ktoś może mi powiedzieć dokładne kroki do ssh z dowolnego miejsca? Wolę prostą nazwę użytkownika i hasło, jak to skonfigurować?

NEO
źródło
1. Po utworzeniu nowego klucza ssh 2. dodaniu projektu publicznego klucza ssh cloud.google.com/compute/docs/instances/…
Jirayuth Sing-ngam

Odpowiedzi:

19

Po tym, jak mogłem ssh za pośrednictwem konsoli internetowej Google, wykonałem następujące kroki, aby rozwiązać ten problem:

  1. Wygeneruj klucz ssh za pomocą

    ssh-keygen

  2. Skopiuj zawartość pliku key.pub

  3. Dołącz zawartość do ~/.ssh/authorized_keyspliku

    sudo nano ~/.ssh/authorized_keys

NEO
źródło
5

Gdy twoja instancja jest tworzona po raz pierwszy, domyślnie nie będzie w niej żadnych kluczy SSH, więc musisz je tam przenieść, np. Używając gcloudpierwszego połączenia, jak opisano w tej odpowiedzi SO, lub ręcznie tworząc klucze SSH i ręcznie dodając je do instancji, jak opisano w innej odpowiedzi SO .

Misha Brukman
źródło
5

Napotkałem tę samą sytuację z powodu użytkownika. W wyszukiwarce Google CII moja nazwa użytkownika pokazywała coś w pierwszej części mojego e-maila. Próbowałem ssh w ten sposób

ssh <first_part_of_gmail>@google_vm_external_ip

Później odkrywam, że Google tworzy użytkownika na podstawie klucza ssh, który umieściłeś w ustawieniu google vm. Najpierw sprawdź użytkownika na końcu klucza publicznego i spróbuj wykonać następujące czynności

ssh <user_name_at_the_end_of_public_key>@google_vm_external_ip
maruf571
źródło
Ocal moje życie. Dzięki.
Tran Dinh Khanh
2

miałem ten sam problem, użyłem polecenia gcloud do pierwszego logowania i dodałem do „/ etc / ssh / sshd_config”

PubkeyAcceptedKeyTypes  +ssh-dss

systemctl restart sshd

Maoz Zadok
źródło
0

To stare pytanie, ale miałem dzisiaj ten problem i naprawiłem go, wykonując następujące kroki:

  1. wygeneruj klucz publiczny ssh z komputera lokalnego
  2. skopiuj klucz publiczny do ustawień maszyny wirtualnej gcc

a następnie połącz.

Te kroki poprowadzą cię do łączenia się z instancją gcc vm na terminalu Mac OS za pomocą ssh: https://nabtron.com/gcc-mac-terminal/ i naprawią również problem odmowy uprawnień (pubilckey).

Mam nadzieję, że to pomoże.

Nabeel Khan
źródło
0

musisz upewnić się, że plik bitnami-gce.pem ma uprawnienia 600

spróbuj chmod 600 bitnami-gce.pem

pozdrowienia Ahmeda

Ahmed Algharawy
źródło