如何在应用程序服务容器中安装SSH

时间:2020-05-14 15:47:41

标签: azure docker containers azure-web-app-service

我需要通过SSH登录到应用程序服务中托管的linux容器(该映像未安装该映像),以便复制一些文件。有没有办法通过门户网站做到这一点?如果可能,我想避免扩展图像。我试过摆弄UI中可用的启动命令,但是没有运气。

谢谢!

2 个答案:

答案 0 :(得分:1)

我正在本地计算机上运行Docker容器,要使用SSH实用程序,我已经执行了以下步骤

步骤1:使用docker命令登录Docker容器

$ docker exec -it <container_id or container_name> /bin/bash

第2步:安装SSH服务器

$ apt-get update && apt-get install -y openssh-server

**步骤3在您的本地计算机上创建SSH密钥对**

如果〜/ .ssh目录中具有SSH密钥对,则可以跳过此步骤

$ ssh-keygen
  • 保留用于存储密钥对的默认路径。
  • ,为此输入密码短语(空输入无密码短语):只需按Enter

步骤4:将公钥文件的内容复制到Docker〜/ .ssh / authorized_keys文件

  • 从本地计算机

$ cat ~/.ssh/id_rsa.pub

现在复制该公钥

  • 内部Docker容器

$ mkdir -p ~/.ssh && chmod 700 ~/.ssh

$ echo "<Public-Key content>" > ~/.ssh/authorized_keys

$ chmod 600 ~/.ssh/authorized_keys

步骤5:更新SSH配置并重新启动Docker容器内的SSH服务

打开文件/ etc / ssh / sshd_config并从以下行中删除注释

PubkeyAuthentication是

此命令用于重新启动SSH服务以影响更改。

$ service ssh restart

并检查SSH服务的状态以查看其是否正在运行

$ service ssh status 

步骤6:获取Docker容器IP。

在本地计算机上按照命令运行

$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_name or container_id>

步骤7:执行SSH

$ ssh root@<Container_IP>

您也可以使用SCP。

$ scp <file_name> root@<container_ip>:

答案 1 :(得分:1)

对于Web应用程序,支持SSH,但是在使用自定义映像时需要configure the SSH。只有Azure Web App提供的内置映像可以直接使用SSH,而无需自行配置。使用内置映像时,您可以进入Kudu,并且已经在其中配置了SSH。

enter image description here enter image description here