关于 Snyk CLI
snyk CLI 扫描源代码、依赖项、容器镜像和基础设施即代码配置中的安全漏洞。开发者可以在本地开发、持续集成中识别和修复安全问题,并生成详细的安全报告。
主要功能
- 01扫描项目依赖中的已知安全漏洞
- 02检查容器镜像中的操作系统和库漏洞
- 03分析基础设施即代码配置的安全问题
适用场景
- 01在持续集成流程中集成安全漏洞扫描
- 02在开发过程中检测和修复依赖和容器漏洞
安装
选择你的系统或包管理器,复制命令到终端运行。
安装完成后运行snyk --version确认安装成功。
命令示例
常用命令按使用顺序排列。
详细介绍
开始使用 Snyk CLI
Snyk CLI 简介
Snyk 是一款以开发者为先、云原生的安全工具,可扫描和监控软件开发项目中的安全漏洞。Snyk 会扫描多种内容类型,查找安全问题:
- Snyk Open Source:查找并自动修复开源漏洞
- Snyk Code:实时查找并修复应用代码中的漏洞
- Snyk Container:查找并修复容器映像和 Kubernetes 应用中的漏洞
- Snyk IaC:查找并修复 Terraform 和 Kubernetes 代码中的不安全配置
Snyk CLI 将 Snyk 的功能融入你的开发工作流。你可以在本地通过命令行或 IDE 运行 CLI,也可以在 CI/CD 流水线中运行。以下是 Snyk CLI 测试命令输出示例。

Snyk CLI 测试命令输出示例
Snyk CLI 扫描支持多种语言和工具。详情请参阅以下内容:
- Open Source 和 Snyk Code 的支持的语言、包管理器和框架
- Container 支持的操作系统发行版
- 支持的 IaC 语言和云提供商
本页介绍如何安装、进行身份验证并开始使用 CLI 扫描。Snyk 还提供入门向导,引导你完成这些步骤。如需查看演示,请观看开始使用 Snyk:CLI 入门流程概览。
安装 Snyk CLI 并对机器进行身份验证
要使用 CLI,必须先安装它并对机器进行身份验证。请参阅安装或更新 Snyk CLI 和使用你的账户对 CLI 进行身份验证。你可以参阅发行说明,了解各个版本的变更摘要。在扫描代码之前,请查看 Snyk CLI 代码执行警告。
{% hint style="info" %}
使用 CLI 扫描 Open Source 之前,必须先安装包管理器。所需的第三方工具(例如 Gradle 或 Maven)必须位于 PATH 中。
{% endhint %}
你也可以在 IDE 或 CI/CD 环境中安装 CLI。详情请参阅 IDE 和 CI/CD 文档,了解各项集成的说明。
测试安装
完成身份验证后,你可以测试安装是否成功。快速测试可运行 snyk --help。
或者,你可以对一个公共 npm 包进行快速测试,例如 snyk test ionic。
查看终端中的 test 命令报告。该报告会显示 Snyk 在包中发现的漏洞。对于发现的每个问题,Snyk 都会报告其严重性,提供详细说明链接,报告易受攻击模块进入系统的路径,并提供问题修复指南。
扫描开发项目
使用 Snyk CLI 检测开源项目中的漏洞之前,除少数例外情况外,必须先构建项目。详情请参阅必须在测试前构建的开源项目。
此外,根据开源项目所使用的语言,在使用 Snyk CLI 之前可能需要设置语言环境。详情请参阅支持的语言、包管理器和框架。
安装 CLI 并完成机器身份验证后,要扫描开源项目,请使用 cd /my/project/ 将当前目录切换到包含受支持的包清单文件(例如 package.json、pom.xml 或 composer.lock)的文件夹。然后运行 snyk test。系统会列出所有发现的漏洞,包括漏洞路径和修复指导。
要扫描源代码,请运行 snyk code test。
例如,运行以下命令即可根据 Docker 镜像标签扫描镜像:snyk container test ubuntu:18.04。
要扫描 Kubernetes(K8s)文件,请运行以下命令:
snyk iac test /path/to/kubernetes_file.yaml
有关使用 Snyk CLI 扫描各类内容的详情,请参阅:
- Snyk CLI for Snyk Open Source 以及
test和monitor命令的 CLI 帮助 - Snyk CLI for Snyk Code 以及 Snyk Code CLI 帮助
- Snyk CLI for Snyk Container,包括 Docker 扫描,以及 Snyk Container CLI 帮助
- Snyk CLI for Snyk IaC,包括 Terraform 和 Kubernetes(K8s)项目,以及 Snyk IAC CLI 帮助
使用 AI Agent 扫描
如果你是 AI 编码 Agent,请使用 Agent 模式:snyk agent test --experimental。该命令会一次性运行 Open Source、Code 和 Secrets 扫描,并返回为 Agent 打造的精简、节省令牌的输出。此命令为实验性功能,可能会发生变更。运行 snyk agent --help 查看详情。
监控开源或容器项目
Snyk 可以定期监控已集成 SCM 的开源或容器项目,并在发现新漏洞时向你发出提醒。要设置项目监控,请运行 snyk monitor 或 snyk container monitor。
这会创建当前依赖项的快照,以便 Snyk 定期扫描代码。之后,当披露新漏洞,或有此前不可用的补丁或升级路径时,Snyk 会向你发出提醒。以下代码展示了 snyk monitor 命令输出的示例。
> snyk monitor
Monitoring /project (project-name)...
Explore this snapshot at
https://app.snyk.io/org/my-org/project/29361c2c-9005-4692
-8df4-88f1c040fa7c/history/e1c994b3-de5d-482b-9281-eab4236c851e
Notifications about newly disclosed issues related to these
dependencies will be emailed to you.
你可以登录 Snyk 账户并前往 Projects 页面,查看最新快照和扫描结果:

Snyk monitor 快照和扫描结果
更多信息请参阅定期监控项目。
测试次数用尽
公开仓库不受测试次数限制。如果您发现,针对私有仓库的测试次数限制(如适用)被公开仓库上的测试占用,可以将 Snyk CLI 正在扫描的仓库公开 URL 告知 Snyk 来解决此问题。这样可确保 Snyk 不会将公开仓库计入测试次数限制。
如果开源 Project 的测试次数用尽,请按以下步骤操作:
- 运行
snyk monitor。 - 在 Snyk Web UI 中,转到 Project 的 Settings。
- 在 Git remote URL 下输入开源仓库的 URL。
关于 Snyk CLI 的其他信息
运行 snyk help,或查看 CLI 命令和选项摘要。
观看课程 Snyk CLI 简介,快速了解相关视频教程。
您可能会发现以下选项的信息尤其有用:
--severity-threshold=low|medium|high|critical:仅报告达到指定级别或更高级别的漏洞。--json:以 JSON 格式输出结果。--all-projects:自动检测工作目录中的所有 Project。
如需详细了解 CLI,请参阅 CLI 文档。
获取 Snyk CLI 支持
使用 Snyk 支持页面上的资源,寻求有关使用 Snyk CLI 或 Snyk 的帮助。请注意,Snyk 支持团队不会主动关注任何 Snyk 开发项目中的 GitHub Issues。
Snyk CLI 不再接受贡献
自 2024 年 7 月 22 日起,Snyk CLI 不再接受外部贡献。
由于 CLI 用途广泛且结构复杂,即使是细微的修改也可能造成意想不到的后果。自 2024 年 4 月在 CLI 代码中引入发布渠道以来,Snyk 一直致力于稳定版本。Snyk 认为,这种开源但不接受贡献的模式最有助于实现这一目标。
本着对 Snyk 客户和 CLI 用户保持透明的原则,Snyk 将继续公开开展工作。不过,从现在起,Snyk CLI 不再接受贡献。
Snyk 感谢并向 Snyk 社区致以谢意。
安全
如有任何安全问题或疑虑,请参阅 GitHub 仓库中的 SECURITY.md 文件。