You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何SSH连接Linux系统的消费型Azure Function实例

问题原因

你使用的是Linux消费(Consumption)计划的Azure Function,微软官方文档里的SSH操作步骤仅适用于专用(App Service)计划、弹性Premium计划的Linux应用/函数,消费计划原生不支持常规SSH访问,这是你操作失效的根本原因:

  • 开发工具栏目没有SSH选项:消费计划的Linux函数默认隐藏了该入口
  • https://<app-name>.scm.azurewebsites.net/webssh/host访问失败:消费计划的SCM站点未内置WebSSH服务
  • az webapp create-remote-connection命令失效:该命令仅适配App Service计划资源,不适用于消费计划函数
可行替代方案

方案1:自定义容器镜像内置SSH(适合自定义镜像部署场景)

如果你是用自定义容器部署的函数,可以在镜像构建阶段就配置好SSH服务,配置要求如下:

  • SSH服务监听2222端口
  • 配置root账户密码为Docker!(平台固定要求,Azure会用该账户建立连接)
  • 容器启动时自动运行sshd服务
    注意:消费计划实例会随冷启动销毁重建,所有临时修改都会丢失,必须把SSH配置固化到容器镜像中。

方案2:临时HTTP触发命令执行(适合代码部署场景)

如果你是用官方基础镜像做代码部署,可以临时创建一个HTTP触发的函数,在函数代码中调用系统shell执行你需要的命令,Python语言参考示例:

import subprocess
import azure.functions as func

def main(req: func.HttpRequest) -> func.HttpResponse:
    cmd = req.params.get('cmd')
    if not cmd:
        return func.HttpResponse("请传入cmd参数指定要执行的命令", status_code=400)
    result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
    return func.HttpResponse(f"输出:\n{result.stdout}\n错误:\n{result.stderr}")

用完后及时删除该临时函数,避免安全风险。

方案3:基础操作替代

如果只是需要查看文件、查看日志这类基础操作,直接用Azure门户的【高级工具(Kudu)】的文件浏览功能,或者用Azure Functions Core Tools执行func azure functionapp logstream <app-name>查看实时日志即可满足需求。

注:消费计划的Linux函数运行在沙箱环境中,即使开启SSH也有很多系统级操作权限限制,不要尝试修改系统级配置。

内容的提问来源于stack exchange,提问作者Illep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:06:01