Detaljerade SSH-felsökningssteg för problem med att ansluta till en virtuell Linux-dator i Azure

Det finns många möjliga orsaker till att SSH-klienten kanske inte kan nå SSH-tjänsten på den virtuella datorn. Om du har följt de mer allmänna felsökningsstegen för SSH måste du felsöka anslutningsproblemet ytterligare. Den här artikeln vägleder dig genom detaljerade felsökningssteg för att avgöra var SSH-anslutningen misslyckas och hur du löser den.

Vidta preliminära åtgärder

Följande diagram visar de komponenter som ingår.

Diagram som visar komponenter i SSH-tjänsten.

Följande steg hjälper dig att isolera källan till felet och ta reda på lösningar eller lösningar.

  1. Kontrollera status för den virtuella datorn i portalen. I Azure Portal väljer du Namn på virtuella datorer för>virtuell dator.

    Statusfönstret för den virtuella datorn bör visa Körs. Rulla ned för att visa den senaste aktiviteten för beräknings-, lagrings- och nätverksresurser.

  2. Välj Inställningar för att undersöka slutpunkter, IP-adresser, nätverkssäkerhetsgrupper och andra inställningar.

    Den virtuella datorn ska ha en slutpunkt definierad för SSH-trafik som du kan visa i slutpunkter eller nätverkssäkerhetsgrupp. Slutpunkter i virtuella datorer som har skapats med hjälp av Resource Manager lagras i en nätverkssäkerhetsgrupp. Kontrollera att reglerna har tillämpats på nätverkssäkerhetsgruppen och refereras till i undernätet.

Kontrollera nätverksanslutningen genom att kontrollera de konfigurerade slutpunkterna och se om du kan ansluta till den virtuella datorn via ett annat protokoll, till exempel HTTP eller en annan tjänst.

Efter de här stegen provar du SSH-anslutningen igen.

Hitta källan till problemet

SSH-klienten på datorn kan misslyckas med att ansluta till SSH-tjänsten på den virtuella Azure-datorn på grund av problem eller felkonfigurationer inom följande områden:

Källa 1: SSH-klientdator

Om du vill eliminera datorn som källa till felet kontrollerar du att den kan göra SSH-anslutningar till en annan lokal Linux-baserad dator.

Diagram som visar SSH-klientdatorkomponenter.

Om anslutningen misslyckas kontrollerar du om det finns följande problem på datorn:

  • En lokal brandväggsinställning som blockerar inkommande eller utgående SSH-trafik (TCP 22)
  • Lokalt installerad klientproxyprogramvara som förhindrar SSH-anslutningar
  • Lokalt installerad programvara för nätverksövervakning som förhindrar SSH-anslutningar
  • Andra typer av säkerhetsprogram som antingen övervakar trafik eller tillåter/nekar specifika typer av trafik

Om något av dessa villkor gäller inaktiverar du programvaran tillfälligt och provar en SSH-anslutning till en lokal dator för att ta reda på orsaken till att anslutningen blockeras på datorn. Kontakta sedan nätverksadministratören för att korrigera programvaruinställningarna för att tillåta SSH-anslutningar.

Om du använder certifikatautentisering kontrollerar du att du har dessa behörigheter till mappen .ssh i din hemkatalog:

  • Chmod 700 ~/.ssh
  • Chmod 644 ~/.ssh/*.pub
  • Chmod 600 ~/.ssh/id_rsa (eller andra filer som har dina privata nycklar lagrade i dem)
  • Chmod 644 ~/.ssh/known_hosts (innehåller värdar som du har anslutit till via SSH)

Källa 2: Organisationsgränsenhet

Om du vill eliminera organisationens gränsenhet som källa till felet kontrollerar du att en dator som är direkt ansluten till Internet kan göra SSH-anslutningar till din virtuella Azure-dator. Om du kommer åt den virtuella datorn via en VPN-anslutning från plats till plats eller en Azure ExpressRoute-anslutning går du vidare till Källa 4: Nätverkssäkerhetsgrupper.

Diagram som visar organisationens gränsenhet.

Om du inte har en dator som är direkt ansluten till Internet skapar du en ny virtuell Azure-dator i en egen resursgrupp eller molntjänst och använder den nya virtuella datorn. Mer information finns i Skapa en virtuell dator som kör Linux i Azure. Ta bort resursgruppen eller den virtuella datorn och molntjänsten när du är klar med testningen.

Om du kan skapa en SSH-anslutning med en dator som är direkt ansluten till Internet kontrollerar du organisationens gränsenhet efter:

  • En intern brandvägg som blockerar SSH-trafik med Internet
  • En proxyserver som förhindrar SSH-anslutningar
  • Intrångsidentifiering eller nätverksövervakningsprogram som körs på enheter i ditt gränsnätverk som förhindrar SSH-anslutningar

Kontakta nätverksadministratören för att korrigera inställningarna för organisationens gränsenheter för att tillåta SSH-trafik med Internet.

Källa 3: Molntjänstslutpunkt och ACL

Viktigt

Klassiska virtuella datorer dras tillbaka den 1 september 2023

Om du använder IaaS-resurser från ASM slutför du migreringen senast den 1 september 2023. Vi rekommenderar att du gör bytet tidigare för att dra nytta av de många funktionsförbättringarna i Azure Resource Manager.

Mer information finns i Migrera dina IaaS-resurser till Azure Resource Manager senast den 1 september 2023.

Obs!

Den här källan gäller endast för virtuella datorer som har skapats med hjälp av den klassiska distributionsmodellen. För virtuella datorer som har skapats med hjälp av Resource Manager går du vidare till källa 4: Nätverkssäkerhetsgrupper.

Om du vill eliminera molntjänstslutpunkten och ACL:en som källa till felet kontrollerar du att en annan virtuell Azure-dator i samma virtuella nätverk kan ansluta med hjälp av SSH.

Diagram som visar molntjänstslutpunkt och ACL.

Om du inte har en annan virtuell dator i samma virtuella nätverk kan du enkelt skapa en. Mer information finns i Skapa en virtuell Linux-dator på Azure med hjälp av CLI. Ta bort den extra virtuella datorn när du är klar med testningen.

Om du kan skapa en SSH-anslutning med en virtuell dator i samma virtuella nätverk kontrollerar du följande områden:

  • Slutpunktskonfigurationen för SSH-trafik på den virtuella måldatorn. Slutpunktens privata TCP-port ska matcha TCP-porten som SSH-tjänsten på den virtuella datorn lyssnar på. (Standardporten är 22). Kontrollera SSH TCP-portnumret i Azure Portal genom att väljaVm-namn> för virtuella datorer>Inställningar>Slutpunkter.
  • ACL:en för SSH-trafikslutpunkten på den virtuella måldatorn. Med en ACL kan du ange tillåten eller nekad inkommande trafik från Internet baserat på källans IP-adress. Felkonfigurerade ACL:er kan förhindra inkommande SSH-trafik till slutpunkten. Kontrollera dina ACL:er för att säkerställa att inkommande trafik från proxyns eller andra gränsserverns offentliga IP-adresser tillåts. Mer information finns i Om listor över nätverksåtkomstkontroll (ACL:er).

Om du vill eliminera slutpunkten som en källa till problemet tar du bort den aktuella slutpunkten, skapar en annan slutpunkt och anger SSH-namnet (TCP-port 22 för det offentliga och privata portnumret). Mer information finns i Konfigurera slutpunkter på en virtuell dator i Azure.

Källa 4: Nätverkssäkerhetsgrupper

Med nätverkssäkerhetsgrupper kan du få mer detaljerad kontroll över tillåten inkommande och utgående trafik. Du kan skapa regler som omfattar undernät och molntjänster i ett virtuellt Azure-nätverk. Kontrollera reglerna för nätverkssäkerhetsgruppen för att se till att SSH-trafik till och från Internet tillåts. Mer information finns i Om nätverkssäkerhetsgrupper.

Du kan också använda IP Verify för att verifiera NSG-konfigurationen. Mer information finns i Översikt över nätverksövervakning i Azure.

Källa 5: Linux-baserad virtuell Azure-dator

Den sista källan till möjliga problem är själva den virtuella Azure-datorn.

Diagram som visar en Linux-baserad virtuell Azure-dator.

Om du inte redan har gjort det följer du anvisningarna för att återställa ett lösenord för Linux-baserade virtuella datorer.

Försök ansluta från datorn igen. Om det fortfarande misslyckas är följande några av de möjliga problemen:

  • SSH-tjänsten körs inte på den virtuella måldatorn.
  • SSH-tjänsten lyssnar inte på TCP-port 22. Testa genom att installera en telnet-klient på den lokala datorn och köra "telnet cloudServiceName.cloudapp.net 22". Det här steget avgör om den virtuella datorn tillåter inkommande och utgående kommunikation till SSH-slutpunkten.
  • Den lokala brandväggen på den virtuella måldatorn har regler som förhindrar inkommande eller utgående SSH-trafik.
  • Intrångsidentifiering eller nätverksövervakningsprogram som körs på den virtuella Azure-datorn förhindrar SSH-anslutningar.

Ytterligare resurser

Mer information om hur du felsöker programåtkomst finns i Felsöka åtkomst till ett program som körs på en virtuell Azure-dator.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.