Udostępnij za pośrednictwem


Szczegółowe procedury rozwiązywania problemów dotyczących połączenia SSH z maszyną wirtualną z systemem Linux na platformie Azure

Dotyczy: ✔️ maszyny wirtualne z systemem Linux

Istnieje wiele możliwych powodów, 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, należy dokładniej rozwiązać problem z połączeniem. Ten artykuł przeprowadzi Cię przez szczegółowe kroki rozwiązywania problemów, aby określić, gdzie połączenie SSH kończy się niepowodzeniem i jak go rozwiązać.

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ą izolowanie źródła awarii i ustalenie rozwiązań lub obejść.

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

    W okienku stanu maszyny wirtualnej powinna być wyświetlana wartość Uruchomiono. Przewiń w dół, aby wyświetlić ostatnie działania dotyczące zasobów obliczeniowych, magazynu i sieci.

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

    Maszyna wirtualna powinna mieć punkt końcowy zdefiniowany 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 usługi Resource Manager, są przechowywane w sieciowej grupie zabezpieczeń. Sprawdź, czy reguły zostały zastosowane do sieciowej grupy zabezpieczeń i są przywołyne w podsieci.

Aby zweryfikować łączność sieciową, sprawdź skonfigurowane punkty końcowe i sprawdź, czy możesz 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 nawiązać 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ź następujące problemy na komputerze:

  • Lokalne ustawienie zapory blokujące ruch przychodzący lub wychodzący SSH (TCP 22)
  • Zainstalowane lokalnie oprogramowanie serwera proxy klienta, które uniemożliwia nawiązywanie połączeń SSH
  • Zainstalowane lokalnie oprogramowanie do monitorowania sieci, które uniemożliwia nawiązywanie połączeń SSH
  • Inne typy oprogramowania zabezpieczającego monitorujące ruch lub zezwalające/nie zezwalające 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 te uprawnienia do folderu ssh w katalogu głównym:

  • Chmod 700 ~/.ssh
  • Chmod 644 ~/.ssh/*.pub
  • Chmod 600 ~/.ssh/id_rsa (lub inne pliki, które mają przechowywane w nich klucze prywatne)
  • Chmod 644 ~/.ssh/known_hosts (zawiera hosty połączone 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 połączony bezpośrednio z Internetem może nawiązać 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 strony Źródło 3: Sieciowe grupy zabezpieczeń.

Diagram przedstawiający urządzenie brzegowe organizacji.

Jeśli nie masz komputera, który jest bezpośrednio połączony z Internetem, utwórz nową maszynę wirtualną platformy Azure w 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. Po zakończeniu testowania usuń grupę zasobów lub maszynę wirtualną i usługę w chmurze.

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 uniemożliwiający połączenia SSH
  • Wykrywanie nieautoryzowane lub oprogramowanie do monitorowania sieci uruchomione na urządzeniach w sieci brzegowej, które uniemożliwia nawiązywanie połączeń SSH

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

Źródło 3: Sieciowe grupy zabezpieczeń

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

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

Źródło 4: 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 resetowania haseł maszyn wirtualnych opartych na systemie Linux.

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

  • Usługa SSH nie została 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ą do punktu końcowego SSH.
  • Zapora lokalna na docelowej maszynie wirtualnej ma reguły uniemożliwiające 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 działającej 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 na temat platformy Azure.