Szczegółowe kroki rozwiązywania problemów z protokołem SSH w przypadku problemów z nawiązywaniem połączenia z maszyną wirtualną z systemem Linux na platformie Azure

Istnieje wiele możliwych przyczyn, dla których klient SSH może nie być w stanie nawiązać połączenia z usługą SSH na maszynie wirtualnej. Jeśli wykonano bardziej ogólne kroki rozwiązywania problemów z protokołem SSH, musisz dalej rozwiązywać problem z połączeniem. W tym artykule przedstawiono szczegółowe kroki rozwiązywania problemów w celu określenia, gdzie połączenie SSH kończy się niepowodzeniem i jak rozwiązać ten problem.

Wykonaj wstępne kroki

Na poniższym diagramie przedstawiono składniki, które są zaangażowane.

Diagram przedstawiający składniki usługi SSH.

Poniższe kroki ułatwiają wyizolowanie źródła błędu i ustalenie rozwiązań lub obejść.

  1. Sprawdź stan maszyny wirtualnej w portalu. W Azure Portal wybierz pozycjęNazwamaszyn wirtualnych maszyn wirtualnych>.

    Okienko stanu maszyny wirtualnej powinno zawierać wartość Uruchomiono. Przewiń w dół, aby wyświetlić ostatnie działania dotyczące zasobów obliczeniowych, magazynowych i sieciowych.

  2. Wybierz pozycję Ustawienia , aby sprawdzić punkty końcowe, adresy IP, sieciowe grupy zabezpieczeń i inne ustawienia.

    Maszyna wirtualna powinna mieć zdefiniowany punkt końcowy dla ruchu SSH, który można wyświetlić w punktach końcowych lub sieciowej grupie zabezpieczeń. Punkty końcowe na maszynach wirtualnych, które zostały utworzone przy użyciu Resource Manager, są przechowywane w sieciowej grupie zabezpieczeń. Sprawdź, czy reguły zostały zastosowane do sieciowej grupy zabezpieczeń i czy są przywoływane w podsieci.

Aby zweryfikować łączność sieciową, sprawdź skonfigurowane punkty końcowe i sprawdź, czy można nawiązać połączenie z maszyną wirtualną za pośrednictwem innego protokołu, takiego jak HTTP lub inna usługa.

Po wykonaniu tych kroków spróbuj ponownie nawiązać połączenie SSH.

Znajdowanie źródła problemu

Klient SSH na komputerze może nie nawiązać połączenia z usługą SSH na maszynie wirtualnej platformy Azure z powodu problemów lub błędów konfiguracji w następujących obszarach:

Źródło 1: komputer kliencki SSH

Aby wyeliminować komputer jako źródło awarii, sprawdź, czy może on nawiązywać połączenia SSH z innym lokalnym komputerem z systemem Linux.

Diagram przedstawiający składniki komputera klienckiego SSH.

Jeśli połączenie nie powiedzie się, sprawdź, czy na komputerze występują następujące problemy:

  • Lokalne ustawienie zapory blokujące przychodzący lub wychodzący ruch SSH (TCP 22)
  • Lokalnie zainstalowane oprogramowanie serwera proxy klienta, które uniemożliwia połączenia SSH
  • Lokalnie zainstalowane oprogramowanie do monitorowania sieci, które uniemożliwia połączenia SSH
  • Inne typy oprogramowania zabezpieczającego, które monitorują ruch lub zezwalają/nie zezwalają na określone typy ruchu

Jeśli jeden z tych warunków ma zastosowanie, tymczasowo wyłącz oprogramowanie i spróbuj nawiązać połączenie SSH z komputerem lokalnym, aby dowiedzieć się, dlaczego połączenie jest blokowane na komputerze. Następnie skontaktuj się z administratorem sieci, aby poprawić ustawienia oprogramowania, aby zezwolić na połączenia SSH.

Jeśli używasz uwierzytelniania certyfikatu, sprawdź, czy masz następujące uprawnienia do folderu .ssh w katalogu macierzystym:

  • Chmod 700 ~/.ssh
  • Chmod 644 ~/.ssh/*.pub
  • Chmod 600 ~/.ssh/id_rsa (lub inne pliki, w których są przechowywane klucze prywatne)
  • Chmod 644 ~/.ssh/known_hosts (zawiera hosty, z którymi nawiązano połączenie za pośrednictwem protokołu SSH)

Źródło 2: Urządzenie brzegowe organizacji

Aby wyeliminować urządzenie brzegowe organizacji jako źródło awarii, sprawdź, czy komputer bezpośrednio połączony z Internetem może nawiązywać połączenia SSH z maszyną wirtualną platformy Azure. Jeśli uzyskujesz dostęp do maszyny wirtualnej za pośrednictwem sieci VPN typu lokacja-lokacja lub połączenia usługi Azure ExpressRoute, przejdź do pozycji Źródło 4: sieciowe grupy zabezpieczeń.

Diagram przedstawiający urządzenie brzegowe organizacji.

Jeśli nie masz komputera połączonego bezpośrednio z Internetem, utwórz nową maszynę wirtualną platformy Azure we własnej grupie zasobów lub usłudze w chmurze i użyj tej nowej maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz Tworzenie maszyny wirtualnej z systemem Linux na platformie Azure. Usuń grupę zasobów lub maszynę wirtualną i usługę w chmurze po zakończeniu testowania.

Jeśli możesz utworzyć połączenie SSH z komputerem, który jest bezpośrednio połączony z Internetem, sprawdź urządzenie brzegowe organizacji pod kątem:

  • Wewnętrzna zapora blokująca ruch SSH z Internetem
  • Serwer proxy, który uniemożliwia połączenia SSH
  • Wykrywanie włamań lub oprogramowanie do monitorowania sieci działające na urządzeniach w sieci brzegowej, które uniemożliwia połączenia SSH

Skontaktuj się z administratorem sieci, aby poprawić ustawienia urządzeń brzegowych organizacji, aby zezwolić na ruch SSH z Internetem.

Źródło 3. Punkt końcowy usługi w chmurze i lista ACL

Ważna

Klasyczne maszyny wirtualne zostaną wycofane 1 września 2023 r.

Jeśli używasz zasobów IaaS z usługi ASM, zakończ migrację do 1 września 2023 r. Zachęcamy do dokonania zmiany wcześniej, aby skorzystać z wielu ulepszeń funkcji w usłudze Azure Resource Manager.

Aby uzyskać więcej informacji, zobacz Migrowanie zasobów IaaS do usługi Azure Resource Manager do 1 września 2023 r.

Uwaga

To źródło dotyczy tylko maszyn wirtualnych, które zostały utworzone przy użyciu klasycznego modelu wdrażania. W przypadku maszyn wirtualnych, które zostały utworzone przy użyciu Resource Manager, przejdź do źródła 4: Sieciowe grupy zabezpieczeń.

Aby wyeliminować punkt końcowy usługi w chmurze i listę ACL jako źródło błędu, sprawdź, czy inna maszyna wirtualna platformy Azure w tej samej sieci wirtualnej może łączyć się przy użyciu protokołu SSH.

Diagram przedstawiający punkt końcowy usługi w chmurze i listę ACL.

Jeśli nie masz innej maszyny wirtualnej w tej samej sieci wirtualnej, możesz ją łatwo utworzyć. Aby uzyskać więcej informacji, zobacz Tworzenie maszyny wirtualnej z systemem Linux na platformie Azure przy użyciu interfejsu wiersza polecenia. Usuń dodatkową maszynę wirtualną po zakończeniu testowania.

Jeśli możesz utworzyć połączenie SSH z maszyną wirtualną w tej samej sieci wirtualnej, sprawdź następujące obszary:

  • Konfiguracja punktu końcowego dla ruchu SSH na docelowej maszynie wirtualnej. Prywatny port TCP punktu końcowego powinien być zgodny z portem TCP, na którym nasłuchuje usługa SSH na maszynie wirtualnej. (Port domyślny to 22). Sprawdź numer portu TCP protokołu SSH w Azure Portal, wybierając pozycjęPunktykońcowe ustawień>nazw> maszyn wirtualnych maszyn >wirtualnych.
  • Lista ACL punktu końcowego ruchu SSH na docelowej maszynie wirtualnej. Lista ACL umożliwia określenie dozwolonego lub niedozwolonego ruchu przychodzącego z Internetu na podstawie jego źródłowego adresu IP. Błędnie skonfigurowane listy ACL mogą uniemożliwiać przychodzący ruch SSH do punktu końcowego. Sprawdź listy ACL, aby upewnić się, że ruch przychodzący z publicznych adresów IP serwera proxy lub innego serwera brzegowego jest dozwolony. Aby uzyskać więcej informacji, zobacz Informacje o listach kontroli dostępu do sieci (ACL).

Aby wyeliminować punkt końcowy jako źródło problemu, usuń bieżący punkt końcowy, utwórz inny punkt końcowy i określ nazwę SSH (port TCP 22 dla numeru portu publicznego i prywatnego). Aby uzyskać więcej informacji, zobacz Konfigurowanie punktów końcowych na maszynie wirtualnej na platformie Azure.

Źródło 4. Sieciowe grupy zabezpieczeń

Sieciowe grupy zabezpieczeń umożliwiają bardziej szczegółową kontrolę nad dozwolonym ruchem przychodzącym i wychodzącym. W sieci wirtualnej platformy Azure można tworzyć reguły obejmujące podsieci i usługi w chmurze. Sprawdź reguły sieciowych grup zabezpieczeń, aby upewnić się, że ruch SSH do i z Internetu jest dozwolony. Aby uzyskać więcej informacji, zobacz Informacje o sieciowych grupach zabezpieczeń.

Możesz również użyć funkcji weryfikacji adresów IP, aby zweryfikować konfigurację sieciowej grupy zabezpieczeń. Aby uzyskać więcej informacji, zobacz Omówienie monitorowania sieci platformy Azure.

Źródło 5: Maszyna wirtualna platformy Azure oparta na systemie Linux

Ostatnim źródłem możliwych problemów jest sama maszyna wirtualna platformy Azure.

Diagram przedstawiający maszynę wirtualną platformy Azure opartą na systemie Linux.

Jeśli jeszcze tego nie zrobiono, postępuj zgodnie z instrukcjami, aby zresetować hasła maszyn wirtualnych opartych na systemie Linux.

Spróbuj ponownie nawiązać połączenie z komputera. Jeśli problem nadal się nie powiedzie, poniżej przedstawiono niektóre z możliwych problemów:

  • Usługa SSH nie jest uruchomiona na docelowej maszynie wirtualnej.
  • Usługa SSH nie nasłuchuje na porcie TCP 22. Aby przetestować, zainstaluj klienta telnet na komputerze lokalnym i uruchom polecenie "telnet cloudServiceName.cloudapp.net 22". Ten krok określa, czy maszyna wirtualna zezwala na komunikację przychodzącą i wychodzącą z punktem końcowym SSH.
  • Zapora lokalna na docelowej maszynie wirtualnej ma reguły, które uniemożliwiają przychodzący lub wychodzący ruch SSH.
  • Wykrywanie włamań lub oprogramowanie do monitorowania sieci uruchomione na maszynie wirtualnej platformy Azure uniemożliwia nawiązywanie połączeń SSH.

Dodatkowe materiały

Aby uzyskać więcej informacji na temat rozwiązywania problemów z dostępem do aplikacji, zobacz Rozwiązywanie problemów z dostępem do aplikacji uruchomionej na maszynie wirtualnej platformy Azure.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.