Azure Uygulaması Hizmeti'nde bir kapsayıcıya SSH oturumu açma

Secure Shell (SSH), yönetim komutlarını bir kapsayıcıda uzaktan yürütmek için kullanılabilir. App Service, windows özel kapsayıcısında barındırılan bir uygulamada doğrudan SSH desteği sağlar.

Windows özel kapsayıcıları, tarayıcı SSH oturumunun çalışması için herhangi bir özel ayar gerektirmez.

Secure Shell (SSH), yönetim komutlarını bir kapsayıcıda uzaktan yürütmek için kullanılabilir. App Service, Linux kapsayıcısında barındırılan bir uygulamada (yerleşik veya özel) doğrudan SSH desteği sağlar.

Yerleşik Linux kapsayıcıları, SSH oturumlarını etkinleştirmek için gerekli yapılandırmaya zaten sahiptir. Linux özel kapsayıcıları, SSH oturumlarını etkinleştirmek için ek yapılandırmalar gerektirir. Daha fazla bilgi edinmek için bkz. SSH'yi etkinleştirme.

App Service SSH'yi gösteren ekran görüntüsü.

Azure CLI aracılığıyla SSH oturumları Windows App Service planları için desteklenmez. Yalnızca Linux App Service planları desteklenir.

Ayrıca SSH ve SFTP kullanarak doğrudan yerel geliştirme makinenizden kapsayıcıya bağlanabilirsiniz.

Tarayıcıda SSH oturumu açma

Kapsayıcınızla doğrudan SSH oturumu açmak istiyorsanız uygulamanız çalışıyor olmalıdır.

az webapp ssh komutunu kullanın.

Kimliğiniz doğrulanmamışsa bağlanmak için Azure aboneliğinizle kimlik doğrulaması yapmanız gerekir. Kimliğiniz doğrulandığında, kapsayıcınızın içinde komutları çalıştırabileceğiniz bir tarayıcı içi kabuk görürsünüz.

SSH bağlantısı

Azure CLI ile SSH oturumu açma

TCP tünelini kullanarak, kimliği doğrulanmış bir WebSocket bağlantısı üzerinden geliştirme makinenizle Linux kapsayıcıları arasında bir ağ bağlantısı oluşturabilirsiniz. Ardından, seçtiğiniz istemciden App Service'te çalışan kapsayıcınızla bir SSH oturumu açabilirsiniz.

Başlamak için Azure CLI'yı yüklemeniz gerekir. Azure CLI'yı yüklemeden nasıl çalıştığını görmek için Azure Cloud Shell'i açın.

az webapp create-remote-connection komutunu kullanarak uygulamanıza uzak bir bağlantı açın. Uygulamanız için abonelik kimliği<, kaynak grubu-adı ve uygulama adı><> belirtin. <>

az webapp create-remote-connection --subscription <subscription-id> --resource-group <resource-group-name> -n <app-name> &

İpucu

& komutun sonunda yalnızca Cloud Shell kullanıyorsanız kolaylık sağlamak için kullanılır. Aynı kabukta bir sonraki komutu çalıştırabilmeniz için işlemi arka planda yürütür.

Not

Bu komut başarısız olursa, aşağıdaki komutu kullanarak uzaktan hata ayıklamanındevre dışı bırakıldıdığından emin olun:

az webapp config set --resource-group <resource-group-name> -n <app-name> --remote-debugging-enabled=false

Komut çıktısı size bir SSH oturumu açmak için ihtiyacınız olan bilgileri verir.

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

Çıkışta (<port-output>) sağlanan yerel bağlantı noktası aracılığıyla seçtiğiniz istemciyi kullanarak kapsayıcınızla bir SSH oturumu açın. Örneğin, Linux ssh komutuyla gibi java -versiontek bir komut çalıştırabilirsiniz:

ssh root@127.0.0.1 -m hmac-sha1 -p <port-output> java -version

Ya da tam bir SSH oturumu başlatmak için "şunu çalıştırın:"

ssh root@127.0.0.1 -m hmac-sha1 -p <port-output>

İstendiğinde bağlanmaya devam etmek için yazın yes . Ardından parola istenir. Daha önce size gösterilen Docker! öğesini kullanın.

Warning: Permanently added '[127.0.0.1]:21382' (ECDSA) to the list of known hosts.
root@127.0.0.1's password:

Kimliğiniz doğrulandıktan sonra oturuma hoş geldiniz ekranını görmeniz gerekir.

  _____
  /  _  \ __________ _________   ____
 /  /_\  \___   /  |  \_  __ \_/ __ \
/    |    \/    /|  |  /|  | \/\  ___/
\____|__  /_____ \____/ |__|    \___  >
        \/      \/                  \/
A P P   S E R V I C E   O N   L I N U X

0e690efa93e2:~#

Artık bağlayıcınıza bağlısınız.

En üstteki komutu çalıştırmayı deneyin.

top

Uygulamanızın işlemini işlem listesinde görebilmeniz gerekir. Örnek çıktıda, PID 263 içeren olandır.

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]

Azure forumu'nda soru ve endişeleri gönderebilirsiniz.

Kapsayıcılar için App Service hakkında daha fazla bilgi edinmek için bkz: