Udostępnij za pośrednictwem


Otwórz sesję SSH do kontenera w usłudze aplikacyjnej 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 z kontenerem, aplikacja powinna być uruchomiona.

Użyj polecenia az webapp ssh .

Jeśli nie masz jeszcze uwierzytelnienia, musisz uwierzytelnić się w subskrypcji platformy Azure, aby nawiązać połączenie. Po uwierzytelnieniu zobaczysz powłokę w przeglądarce, w której możesz uruchamiać polecenia wewnątrz swojego kontenera.

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. Pozwala otworzyć sesję SSH z kontenerem, który jest uruchomiony w usłudze App Service, za pomocą 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 <> subskrypcji, grupy i<> 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 przez siebie klientem, używając portu lokalnego podanego w danych wyjściowych (<port-output>). Na przykład za pomocą polecenia ssh systemu Linux

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!, które zostało pokazane 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: