Udostępnij za pośrednictwem


Dostęp SSH do serwerów z obsługą usługi Azure Arc

Połączenia oparte na protokole SSH można włączyć z serwerami z obsługą usługi Arc bez konieczności używania publicznego adresu IP lub dodatkowych otwartych portów. Ta funkcja może być używana interaktywnie, zautomatyzowana lub z istniejącymi narzędziami opartymi na protokole SSH, rozszerzając wpływ istniejących narzędzi do zarządzania na serwerach z obsługą usługi Azure Arc.

Korzyści

Dostęp SSH do serwerów z obsługą usługi Arc zapewnia następujące korzyści:

  • Nie jest wymagany publiczny adres IP ani otwarte porty SSH
  • Dostęp do maszyn z systemami Windows i Linux
  • Możliwość logowania się jako użytkownik lokalny lub użytkownik platformy Azure (tylko system Linux)
  • Obsługa innych narzędzi opartych na protokole OpenSSH z obsługą plików konfiguracji

Wymagania wstępne

  • Uprawnienia użytkownika: rola właściciela lub współautora przypisana dla docelowego serwera z obsługą usługi Arc.
  • Serwer z obsługą usługi Arc:
    • Wersja agenta hybrydowego: 1.31.xxxx lub nowsza
    • Należy włączyć usługę SSH ("sshd").

W przypadku systemu Linux zainstaluj openssh-server za pośrednictwem menedżera pakietów. Możesz sprawdzić, czy plik sshd jest uruchomiony w systemie Linux, uruchamiając następujące polecenie:

ps -aux | grep sshd

W przypadku systemu Windows zobacz Włączanie protokołu OpenSSH. Możesz sprawdzić, czy protokół SSH jest zainstalowany i uruchomiony za pomocą następujących poleceń:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

# Check the sshd service is running
Get-Service sshd

Uwierzytelnianie usługi Microsoft Entra

Jeśli używasz usługi Microsoft Entra do uwierzytelniania, musisz zainstalować aadsshlogin i aadsshlogin-selinux (zgodnie z potrzebami) na serwerze z obsługą usługi Arc. Te pakiety są instalowane za pomocą rozszerzenia maszyny wirtualnej AADSSHLoginForLinux.

Należy również skonfigurować przypisania ról dla maszyny wirtualnej. Do autoryzowania logowania maszyny wirtualnej służą dwie role platformy Azure:

  • Logowanie administratora maszyny wirtualnej: użytkownicy, którzy mają przypisaną tę rolę, mogą logować się do maszyny wirtualnej platformy Azure z uprawnieniami administratora.
  • Logowanie użytkownika maszyny wirtualnej: użytkownicy, którzy mają przypisaną tę rolę, mogą logować się do maszyny wirtualnej platformy Azure przy użyciu zwykłych uprawnień użytkownika.

Użytkownik platformy Azure z przypisaną rolą Właściciel lub Współautor dla maszyny wirtualnej nie ma automatycznie uprawnień do logowania microsoft Entra do maszyny wirtualnej za pośrednictwem protokołu SSH. Istnieje celowe (i poddawane inspekcji) rozdzielenie między zestawem osób kontrolujących maszyny wirtualne a zestawem osób, które mogą uzyskiwać do nich dostęp.

Uwaga

Role logowania administratora maszyny wirtualnej i użytkownika maszyny wirtualnej używają dataActions i mogą być przypisane do grupy zarządzania, subskrypcji, grupy zasobów lub zakresu zasobów. Zalecamy przypisanie ról na poziomie grupy zarządzania, subskrypcji lub zasobu, a nie na poziomie poszczególnych maszyn wirtualnych. Ta praktyka pozwala uniknąć ryzyka osiągnięcia limitu przypisań ról w platformie Azure na subskrypcję.

Dostępność

Dostęp SSH do serwerów z obsługą usługi Arc jest obecnie obsługiwany we wszystkich regionach chmury obsługiwanych przez serwery z obsługą usługi Arc.

Włączanie dostępu SSH do serwerów z obsługą usługi Arc

Aby włączyć dostęp SSH do serwerów z obsługą usługi Arc, wykonaj kroki opisane w tej sekcji.

Rejestrowanie dostawcy zasobów HybridConnectivity

Uwaga

Jest to jednorazowa operacja, która musi być wykonywana w każdej subskrypcji.

Sprawdź, czy dostawca zasobów HybridConnectivity został zarejestrowany:

az provider show -n Microsoft.HybridConnectivity -o tsv --query registrationState

Jeśli dostawca zasobów nie został zarejestrowany, uruchom następujące polecenie, aby go zarejestrować:

az provider register -n Microsoft.HybridConnectivity

Wykonanie tej operacji może potrwać od 2 do 5 minut. Przed przejściem do następnego kroku upewnij się, że rejestracja została ukończona.

Tworzenie domyślnego punktu końcowego łączności

Ten krok należy wykonać dla każdego serwera z obsługą usługi Arc. Jednak może nie być konieczne uruchomienie tych poleceń, aby to zrobić, ponieważ powinno zakończyć się automatycznie przy pierwszym połączeniu.

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15 --body '{"properties": {"type": "default"}}'

Uwaga

W przypadku korzystania z interfejsu wiersza polecenia platformy Azure z poziomu programu PowerShell należy użyć następujących elementów.

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15 --body '{\"properties\":{\"type\":\"default\"}}'

Zatwierdź tworzenie punktu końcowego

az rest --method get --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15

Instalowanie lokalnego narzędzia wiersza polecenia

Funkcje SSH są dostępne w rozszerzeniu interfejsu wiersza polecenia platformy Azure i w module programu Azure PowerShell. Zainstaluj odpowiednie narzędzie dla danego środowiska.

az extension add --name ssh

Włącz funkcjonalność na serwerze z obsługą Arc

Aby można było używać funkcji SSH Connect, należy zaktualizować konfigurację usługi w punkcie końcowym łączności na serwerze z obsługą usługi Arc, aby zezwolić na połączenie SSH z określonym portem. Możesz zezwolić tylko na połączenie z jednym portem. Narzędzia interfejsu wiersza polecenia próbują zaktualizować dozwolony port w czasie wykonywania, ale port można skonfigurować ręcznie za pomocą następującego polecenia. Jeśli używasz portu innego niżdefault dla połączenia SSH, zastąp port 22 żądanym portem.

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15 --body "{\"properties\": {\"serviceName\": \"SSH\", \"port\": 22}}"

Uwaga

Zanim będzie można nawiązać połączenie, może wystąpić opóźnienie po zaktualizowaniu konfiguracji usługi.

Opcjonalnie: Instalowanie rozszerzenia logowania firmy Microsoft Entra

Aby używać Microsoft Entra do uwierzytelniania na maszynach Linux, należy zainstalować aadsshlogin i aadsshlogin-selinux (jeśli jest to konieczne) na serwerze z włączoną obsługą Arc. Te pakiety są instalowane za pomocą rozszerzenia maszyny wirtualnej AADSSHLoginForLinux.

Aby dodać to rozszerzenie w witrynie Azure Portal, przejdź do klastra, a następnie w menu usługi w obszarze Ustawienia wybierz pozycję Rozszerzenia. Wybierz pozycję Dodaj, a następnie wybierz pozycję Logowanie SSH oparte na usłudze Azure AD — Azure Arc i zakończ instalację. Rozszerzenie można również zainstalować lokalnie za pośrednictwem menedżera pakietów, uruchamiając apt-get install aadsshlogin polecenie lub następujące polecenie:

az connectedmachine extension create --machine-name <arc enabled server name> --resource-group <resourcegroup> --publisher Microsoft.Azure.ActiveDirectory --name AADSSHLogin --type AADSSHLoginForLinux --location <location>

Przykłady

Aby wyświetlić przykłady i więcej szczegółów, przejrzyj stronę dokumentacji Az CLI dla polecenia az ssh lub stronę dokumentacji Azure PowerShell dla modułu Az.Ssh.

Wyłącz SSH na serwerach z obsługą Arc

Jeśli musisz usunąć dostęp SSH do serwerów z obsługą usługi Arc, wykonaj poniższe kroki.

  1. Usuń port I funkcjonalność protokołu SSH z serwera z obsługą usługi Arc:

    az rest --method delete --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15 --body '{\"properties\": {\"serviceName\": \"SSH\", \"port\": \"22\"}}'
    
  2. Usuń domyślny punkt końcowy łączności:

    az rest --method delete --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15
    

Następne kroki