Udostępnij za pośrednictwem


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.

Linux App Service SSH

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.

Linux App Service 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.

Połączenie SSH

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: