Potrzebuję dostępu SSH do instancji Amazon EC2 z systemem Ubuntu 10.4. Mam tylko nazwę użytkownika i hasło Amazon. Jakieś pomysły?
Odpowiedzi:
Zasadniczo potrzebujesz pliku klucza prywatnego, aby zalogować się do EC2 przez SSH. Wykonaj następujące kroki, aby je utworzyć:
ssh -i /path/to/private-key root@<ec2-public-dns-address>
- w najnowszych wydaniach pomijano nazwę użytkownika root, w oparciu o wybraną dystrybucję ec2-user
lub ubuntu
jako nazwę użytkownika.ubuntu
logowania zamiast root
. Najwyraźniej mam instancję serwera ubuntu 12.04.
ec2-user
lub może ubuntu
, ale nie root
.
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>
po prostu użyj ubuntu
zamiast root
. Twój problem zostanie rozwiązany. Twoje zdrowie!
KROK 1) Pobierz klucze prywatne przypisane do twojej maszyny ec2 (które są pobierane tylko raz po utworzeniu. Więc zaleca się gdzieś zatwierdzić)
KROK 2) i strzelaj zgodnie z poleceniami,
chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com
Official Doc : Łączenie się z instancjami Linux / Unix za pomocą SSH
Najpierw musisz utworzyć parę kluczy - zrób to za pomocą konsoli EC2. Następnie użyj swojego klucza prywatnego, aby połączyć się z serwerem ec2-user
za pomocą SSH (nazwa użytkownika to ) przy użyciu wybranego klienta SSH.
Po wejściu możesz wydać a, sudo su -
aby uzyskać root, jeśli chcesz (uwaga: nie możesz zalogować się bezpośrednio jako root).
Jeśli używasz MacOS, powinieneś utworzyć / edytować plik konfiguracyjny SSH (~ / .ssh / config) i umieścić coś takiego:
Host *.amazonaws.com
User ubuntu
Port 22
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
IdentityFile ~/PATH/YOUR_DOWNLOADED_KEY.pem
Następnie, aby połączyć się z dowolną instancją EC2:
ssh MYNAME.amazonaws.com
Nic więcej!
Aby skonfigurować Ubuntu na AWS, wykonaj następujące kroki:
Aby uzyskać dostęp do instancji przez SSH, uruchom:
Połącz się z Linuksem, podając plik PEM, np
ssh -i "file.pem" ubuntu@x.x.x.x
Upewnij się, że plik PEM ma uprawnienia 600 ( chmod 600 file.pem
).
Jeśli używasz instancji VPC, a Twoja grupa zabezpieczeń jest poprawna (z odpowiednimi regułami) i nadal nie działa, w sekcji VPC sprawdź podsieć, która powinna być podłączona do Twojego VPC (obie używane przez Twoją instancję) i skonfiguruj nowa reguła w tablicy routingu , która ma 0.0.0.0/0
jako docelowe i swojej bramy internetowej jako docelowy .
Aby uzyskać więcej informacji, zobacz: Rozwiązywanie problemów z połączeniem z Twoją instancją
Zobacz też: Możliwe przyczyny przekroczenia limitu czasu podczas próby uzyskania dostępu do instancji EC2
1) Najpierw chmod
w .pem file
celu ograniczenia uprawnień do plików, jak poniżej
chmod 400 my-key-pair.pem
2) Następnie
ssh
za pomocą następujących poleceń bezpośrednio z .ssh
folderu
ssh -i my-key-pair.pem ec2-user@ec2-198-99-90-3.compute-1.amazonaws.com
Uwaga: - Aby przejść do .ssh
folderu. Najpierw naciśnij, Ctrl + H
aby wyświetlić wszystkie ukryte pliki, a na konieccd .ssh
Problemem może być brak zalogowania się jako poprawny użytkownik systemu operacyjnego Distro. W przypadku niektórych nowych AMI nazwą użytkownika nie może być „ubuntu”, ale „ec2-user”. Na przykład w przypadku Amazon Linux uważam, że użytkownik to „ec2-user”. Eric Hammond podaje przykłady tutaj: http://alestic.com/2014/01/ec2-ssh-username
Moja sugestia, spróbuj:
ssh -i /path/to/file.pem ec2-user@ec2...
ssh -i /path/to/file.pem ubuntu@ec2...
ssh -i /path/to/file.pem root@ec2...
Jeśli masz niewłaściwy AMI, możesz po prostu całkowicie zrestartować maszynę, aby uzyskać jednolitość między klastrami. Jeśli to jest twój problem, prawdopodobnie będziesz chciał mieć ten sam system operacyjny Distro przynajmniej dla twoich Linux-ów.
Robienie tego, co jest sugerowane we wszystkich tych odpowiedziach, nie wystarczy. Przy każdym wystąpieniu widać grupę zabezpieczeń. Kiedy uruchamiasz nową instancję, będziesz mieć to ustawienie domyślne. Musisz edytować grupę bezpieczeństwa i dodać do niej port ssh. Później musisz dodać porty 8080, 8443, 80, 443 również wtedy, gdy chcesz hostować swoją witrynę.
Zaakceptowałem ofertę AWS dotyczącą użycia domyślnych grup zabezpieczeń, które obejmowały porty „All Trafic”.
I po wielu i wielu próbach połączenia się na mojej nowej instancji ec2 właśnie zdałem sobie sprawę, że powinienem edytować moją używaną grupę zabezpieczeń i ręcznie dodać do przychodzącego i wychodzącego portu 22 (ssh)!
Mam nadzieję, że to pomoże !
Pierwsza zmiana uprawnień do pliku pem o
chmod 400 path/to/key_pair.pem
Wewnątrz pliku ~ / .ssh / config dodaj następujące wiersze, na górze pliku
Host AWS
Hostname myserver.com
User myuser
IdentityFile path/to/.pem/file
port 22
Nazwa hosta to adres IP lub łącze serwera, nazwa użytkownika serwera, a plik tożsamości to plik pobierany z AWS podczas tworzenia instancji. Po prostu uruchom następujące polecenie w terminalu
ssh AWS
i ciesz się!
Uwaga : aby przejść do .ssh
folderu. Najpierw naciśnij Ctrl + H
w folderze domowym, aby wyświetlić wszystkie ukryte pliki i na konieccd .ssh
Upewnij się, że wszystko jest w porządku
klucz prywatny musi mieć uprawnienia 400
Upewnij się, że port 22 jest otwarty dla instancji AWS, do której próbujesz uzyskać dostęp.
ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX
// XXX.XXX.XXX.XXX = publiczny adres IP Twojej instancji