Otwieranie sesji SSH w kontenerze w usłudze aplikacja systemu Azure
Protokół Secure Shell (SSH) może służyć do zdalnego wykonywania poleceń administracyjnych w kontenerze. Usługa App Service zapewnia obsługę protokołu SSH bezpośrednio w aplikacji hostowanej w kontenerze niestandardowym systemu Windows.
Kontenery niestandardowe systemu Windows nie wymagają żadnych specjalnych ustawień, aby sesja SSH przeglądarki działała. Sesje SSH za pośrednictwem interfejsu wiersza polecenia platformy Azure nie są obsługiwane.
Protokół Secure Shell (SSH) może służyć do zdalnego wykonywania poleceń administracyjnych w kontenerze. Usługa App Service zapewnia obsługę protokołu SSH bezpośrednio w aplikacji hostowanej w kontenerze systemu Linux (wbudowanym lub niestandardowym).
Wbudowane kontenery systemu Linux mają już niezbędną konfigurację do włączenia sesji SSH. Kontenery niestandardowe systemu Linux wymagają dodatkowych konfiguracji w celu włączenia sesji SSH. Zobacz Włączanie protokołu SSH.
Możesz również nawiązać połączenie z kontenerem bezpośrednio z lokalnej maszyny deweloperskiej przy użyciu protokołów SSH i SFTP.
Otwieranie sesji SSH w przeglądarce
Aby otworzyć bezpośrednią sesję SSH w kontenerze, należy uruchomić aplikację.
Wklej następujący adres URL do przeglądarki i zastąp wartość <app-name>
nazwą swojej aplikacji:
https://<app-name>.scm.azurewebsites.net/webssh/host
Jeśli nie masz jeszcze uwierzytelnienia, musisz uwierzytelnić się w subskrypcji platformy Azure, aby nawiązać połączenie. Po uwierzytelnieniu zostanie wyświetlona powłoka w przeglądarce umożliwiająca uruchamianie poleceń w kontenerze.
Otwieranie sesji SSH za pomocą interfejsu wiersza polecenia platformy Azure
Za pomocą tunelowania TCP można utworzyć połączenie sieciowe między maszyną deweloperskim i kontenerami systemu Linux za pośrednictwem uwierzytelnionego połączenia protokołu WebSocket. Umożliwia ona otwarcie sesji SSH z kontenerem uruchomionym w usłudze App Service z wybranego klienta.
Aby rozpocząć, musisz zainstalować interfejs wiersza polecenia platformy Azure. Aby zobaczyć, jak działa bez instalowania interfejsu wiersza polecenia platformy Azure, otwórz usługę Azure Cloud Shell.
Otwórz połączenie zdalne z aplikacją przy użyciu polecenia az webapp create-remote-connection . Określ <identyfikator> subskrypcji, <nazwę> grupy i< nazwę> aplikacji dla aplikacji.
az webapp create-remote-connection --subscription <subscription-id> --resource-group <resource-group-name> -n <app-name> &
Napiwek
&
na końcu polecenia jest tylko dla wygody, jeśli używasz usługi Cloud Shell. Uruchamia proces w tle, aby można było uruchomić następne polecenie w tej samej powłoce.
Uwaga
Jeśli to polecenie nie powiedzie się, upewnij się, że debugowanie zdalne jest wyłączone za pomocą następującego polecenia:
az webapp config set --resource-group <resource-group-name> -n <app-name> --remote-debugging-enabled=false
Dane wyjściowe polecenia zawierają informacje potrzebne do otwarcia sesji SSH.
Verifying if app is running....
App is running. Trying to establish tunnel connection...
Opening tunnel on addr: 127.0.0.1
Opening tunnel on port: <port-output>
SSH is available { username: root, password: Docker! }
Ctrl + C to close
Otwórz sesję SSH z wybranym klientem przy użyciu wybranego klienta, używając portu lokalnego podanego w danych wyjściowych (<port-output>
). Na przykład za pomocą polecenia ssh systemu Linux można uruchomić jedno polecenie, takie jak java -version
:
ssh root@127.0.0.1 -m hmac-sha1 -p <port-output> java -version
Lub, aby wprowadzić pełną sesję SSH, wystarczy uruchomić polecenie:
ssh root@127.0.0.1 -m hmac-sha1 -p <port-output>
Po wyświetleniu monitu wpisz yes
, aby kontynuować nawiązywanie połączenia. Zostanie wyświetlony monit o podanie hasła. Użyj Docker!
polecenia , który został pokazany wcześniej.
Warning: Permanently added '[127.0.0.1]:21382' (ECDSA) to the list of known hosts. root@127.0.0.1's password:
Po uwierzytelnieniu powinien zostać wyświetlony ekran powitalny sesji.
_____ / _ \ __________ _________ ____ / /_\ \___ / | \_ __ \_/ __ \ / | \/ /| | /| | \/\ ___/ \____|__ /_____ \____/ |__| \___ > \/ \/ \/ A P P S E R V I C E O N L I N U X 0e690efa93e2:~#
Masz teraz połączenie z łącznikiem.
Spróbuj uruchomić pierwsze polecenie. Proces aplikacji powinien być widoczny na liście procesów. W poniższych przykładowych danych wyjściowych jest to jedno z parametrami PID 263
.
Mem: 1578756K used, 127032K free, 8744K shrd, 201592K buff, 341348K cached CPU: 3% usr 3% sys 0% nic 92% idle 0% io 0% irq 0% sirq Load average: 0.07 0.04 0.08 4/765 45738 PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND 1 0 root S 1528 0% 0 0% /sbin/init 235 1 root S 632m 38% 0 0% PM2 v2.10.3: God Daemon (/root/.pm2) 263 235 root S 630m 38% 0 0% node /home/site/wwwroot/app.js 482 291 root S 7368 0% 0 0% sshd: root@pts/0 45513 291 root S 7356 0% 0 0% sshd: root@pts/1 291 1 root S 7324 0% 0 0% /usr/sbin/sshd 490 482 root S 1540 0% 0 0% -ash 45539 45513 root S 1540 0% 0 0% -ash 45678 45539 root R 1536 0% 0 0% top 45733 1 root Z 0 0% 0 0% [init] 45734 1 root Z 0 0% 0 0% [init] 45735 1 root Z 0 0% 0 0% [init] 45736 1 root Z 0 0% 0 0% [init] 45737 1 root Z 0 0% 0 0% [init] 45738 1 root Z 0 0% 0 0% [init]
Następne kroki
Możesz publikować pytania i wątpliwości na forum platformy Azure.
Aby uzyskać więcej informacji na temat funkcji Web App for Containers, zobacz:
- Wprowadzenie do zdalnego debugowania aplikacji Node.js w usłudze aplikacja systemu Azure z programu VS Code
- Szybki start: uruchamianie niestandardowego kontenera w usłudze App Service
- Azure App Service Web App for Containers FAQ (Usługa Web App for Containers w usłudze Azure App Service — często zadawane pytania)