Jak połączyć się z instancją AWS przez ssh?
Mam:
- Zarejestrowany w AWS;
- Utworzono klucz publiczny i certyfikat na stronie internetowej AWS i zapisano je na dysku;
Poszedłem do mojej konsoli i utworzyłem zmienne środowiskowe:
$ export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/ $ export EC2_CERT=/home/default/aws/cert-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem $ export EC2_PRIVATE_KEY=/home/default/aws/pk-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem
Powiedział AWS API, aby używał tej pary kluczy i zapisał parę kluczy do pliku:
$ ec2-add-keypair ec2-keypair > ec2-keypair.pem
Uruchomiono instancję AWS Ubuntu 9 za pomocą tej pary kluczy:
$ ec2-run-instances ami-ed46a784 -k ec2-keypair
Próbowano ustanowić połączenie ssh z instancją:
$ ssh -v -i ec2-keypair.pem [email protected] OpenSSH_5.1p1 Debian-5ubuntu1, OpenSSL 0.9.8g 19 Oct 2007 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug1: Connecting to ec2-174-129-185-190.compute-1.amazonaws.com [174.129.185.190] port 22. debug1: Connection established. debug1: identity file ec2-keypair.pem type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5ubuntu1 debug1: match: OpenSSH_5.1p1 Debian-5ubuntu1 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-5ubuntu1 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc hmac-md5 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: Host 'ec2-174-129-185-190.compute-1.amazonaws.com' is known and matches the RSA host key. debug1: Found key in /home/default/.ssh/known_hosts:11 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received 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: ec2-keypair.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).
Co może być problemem i jak to zrobić?
Odpowiedzi:
W przypadku instancji Ubuntu:
W innych przypadkach może być konieczne użycie
ec2-user
zamiastubuntu
.Większość używanych przeze mnie obrazów EC2 Linux ma domyślnie utworzonego użytkownika root.
Zobacz także: http://www.youtube.com/watch?v=WBro0TEAd7g
źródło
Teraz jest:
źródło
Wersje Canonical domyślnie używają użytkownika „ubuntu” dla każdego, kto ląduje tutaj z obrazem ubuntu, który ma ten sam problem.
źródło
Jeśli używasz obrazu Bitnami, zaloguj się jako „bitnami”.
Wydaje się oczywiste, ale coś przeoczyłem.
źródło
Seems <sarcasm>obvious</sarcasm>
W przypadku moich obrazów ubuntu jest to właściwie użytkownik ubuntu, a NIE użytkownik ec2;)
źródło
Ubuntu 10.04 z openSSH
jest to dokładne użycie:
na przykład:
powyższy przykład wzięto bezpośrednio z samouczka AWS dotyczącego łączenia się z komputerem z systemem Linux / UNIX pod adresem : http://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/
źródło
Będzie również narzekać, jeśli uprawnienia do pliku pem są zbyt otwarte. chmod plik do 600, aby to naprawić.
źródło
chmod 600 your_file.pem
Na to też wpadałem - okazało się, że korzystałem z AMI utworzonego przez społeczność - a domyślną nazwą użytkownika był nie root, ani ect-user ani ubuntu. W rzeczywistości nie miałem pojęcia, co to jest - dopóki nie spróbowałem „ rootowania ”, a serwer uprzejmie poprosił mnie o zalogowanie się jako xxx, gdzie xxx jest tym, co ci mówi.
-Twoje zdrowie!
źródło
Musisz mieć swój klucz prywatny na swoim komputerze lokalnym
Musisz znać adres IP lub nazwę DNS swojego zdalnego komputera lub serwera, możesz to uzyskać z konsoli AWS
Jeśli jesteś użytkownikiem Linuksa
chmod 600 <path to private key file>
)ssh -i <path to private key file> <user>@<IP address or DNS name of remote server>
)Jeśli jesteś użytkownikiem systemu Windows
źródło
posługiwać się...
nie używaj uprawnienia 600, w przeciwnym razie możesz przypadkowo zastąpić swój klucz.
źródło
to działało dla mnie:
do usuwania starych kluczy przechowywanych na stacji roboczej działa również zamiast
potem powtórzenie tego samego ssh zadziałało:
w instancjach ubuntu nazwa użytkownika to: ubuntu w Amazon Linux AMI nazwa użytkownika to: ec2-user
Nie musiałem ponownie tworzyć instancji z obrazu.
źródło
W przypadku instancji Debian EC2 użytkownikiem jest
admin
.źródło
Do połączenia są 2 kroki:
Chmod 400 na twoim kluczu prywatnym, tak jak inni nie mogą uzyskać dostępu do twojego klucza:
Aby połączyć się z instancją w SSH, musisz znać publiczny adres IP swojej instancji:
Mam nadzieję, że to pomoże !
źródło
Jeśli używasz EBS, możesz także spróbować zamontować wolumin EBS na działającej instancji. Następnie zamontuj go na działającej instancji i zobacz, co się dzieje w / home. Możesz zobaczyć takie rzeczy, jak użytkownik ubuntu lub użytkownik ec2? czy ma odpowiednie klucze publiczne w ~ / .ssh / uprawnione_ klucze
źródło
Pozwolenie
ec2-keypair.pem
powinno być400
chmod 400 ec2-keypair.pem
źródło
Jeśli korzystasz z obrazu AWS z Bitnami. Nazwą użytkownika będzie bitnami. Twoje zdrowie!
zobacz mój debugowanie i spójrz na ostatni:
*
*
źródło
W moim przypadku (Mac OS X) problemem był typ podziału pliku. Spróbuj tego:
1. - Otwórz plik .pem za pomocą TextWrangler
2. - Na dole aplikacji sprawdź, czy typem podziału jest „Windows (CRLF)”.
źródło
Jego użytkownik ec2 dla AMI Amazon Linux i Ubuntu dla obrazów Ubuntu. Ponadto RHEL 6.4 i nowszy ec2-user RHEL 6.3 i wcześniejszy root root Fedory ec2-user Centos root
źródło
Właśnie dodałem do tej listy. Dziś rano miałem problem z nowym użytkownikiem dodanym właśnie do instancji AWS EC2. Aby przejść do sedna, problemem był selinux (który był w trybie wymuszania ), wraz z faktem, że katalog domowy mojego użytkownika znajdował się na nowym wolumenie dołączonym do EBS. Wydaje mi się, że jakoś selinux nie lubi tego innego tomu. Zajęło mi to trochę czasu, żeby to rozgryźć, kiedy przejrzałem wszystkie inne zwykłe problemy z ssh (/ etc / ssh / sshd_config było w porządku, oczywiście, że hasło nie jest dozwolone, uprawnienia były prawidłowe itp.)
Poprawka?
Na razie (dopóki nie zrozumiem, jak zezwolić użytkownikowi na ssh do innego woluminu, lub w jakiś sposób uczynić go woluminem bona fide home dir):
Otóż to. Teraz mój nowy użytkownik może się zalogować, używając własnego klucza id_rsa.
źródło
Miałem ten sam problem. Odmowa dostępu (publickey) podczas próby zalogowania się za pomocą „ec2-user” lub „root”.
Przeszukano numer AMI obrazu maszyny i miał on dane logowania SSH bezpośrednio na stronie wiki Debiana.
Mam nadzieję że to pomoże.
źródło