linux/ubuntu国内镜像安装gitleaks敏感信息扫描工具教程及避坑点
1、背景
利用gitleaks扫描git仓库或者文件
GitHub上有比较详细的教程,但是由于每个人的安装环境不同,坑很多,网上能查到的有效信息也比较少。这里就以我坑很多的环境为例,捋一下步骤。
GitHub - gitleaks/gitleaks: Protect and discover secrets using Gitleaks 🔑
2、步骤
# MacOS
brew install gitleaks# Docker (DockerHub)
docker pull zricethezav/gitleaks:latest
docker run -v ${path_to_host_folder_to_scan}:/path zricethezav/gitleaks:latest [COMMAND] --source="/path" [OPTIONS]# Docker (ghcr.io)
docker pull ghcr.io/gitleaks/gitleaks:latest
docker run -v ${path_to_host_folder_to_scan}:/path ghcr.io/gitleaks/gitleaks:latest [COMMAND] --source="/path" [OPTIONS]# From Source (make sure `go` is installed)
git clone https://github.com/gitleaks/gitleaks.git
cd gitleaks
make build
(1)安装brew
没有用docker,因为本来linux环境里之前就装好brew了。这个装起来也挺烦的,但是考虑到我用过其他很多扫描工具,install的时候也常用brew,所以就装了。一举多得。
首先,手动克隆 Homebrew 的代码库:
bash复制代码git clone https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git ~/.linuxbrew/Homebrew
然后,创建一些必要的目录并将 Homebrew 添加到你的 PATH 中:
bash复制代码mkdir ~/.linuxbrew
mkdir ~/.linuxbrew/bin
ln -s ~/.linuxbrew/Homebrew/bin/brew ~/.linuxbrew/bin
echo 'export PATH="$HOME/.linuxbrew/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
brew update
brew --version # 确认是否安装好了
可能会有的报错:
①Updating Homebrew... Error: Failed to download https://formulae.brew.sh/api/cask.jws.json!
这可能与网络连接或访问权限有关。
# 切换 Homebrew 主仓库到清华大学镜像
git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git# 切换 Homebrew 核心库到清华大学镜像
git -C "$(brew --repo)/Library/Taps/homebrew/homebrew-core" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git# 切换 Homebrew Cask 库到清华大学镜像
git -C "$(brew --repo)/Library/Taps/homebrew/homebrew-cask" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git# 重新更新 Homebrew
brew update
②fatal: cannot change to '/home/iot/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-core': No such file or directory
这个错误表明 Homebrew 的核心库 (homebrew-core
) 还没有被正确克隆或安装。通常情况下,Homebrew 会在第一次安装时自动下载和配置这些库,但由于你的安装过程遇到了一些问题,所以这个目录可能还没有被创建。
可以手动克隆 homebrew-core
仓库到正确的位置,克隆完成后,重新设置远程镜像地址:
mkdir -p "$(brew --repo)/Library/Taps/homebrew/"
git clone https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git -C "$(brew --repo)/Library/Taps/homebrew/homebrew-core" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
更新
brew update
brew install gitleaks
(2)brew install gitleaks
可能会有的报错:
①Error: gitleaks: Failed to download resource "glibc--bootstrap-binutils" Download failed: https://github.com/Homebrew/glibc-bootstrap/releases/download/1.0.0/bootstrap-binutils-2.38.tar.gz或者Error: gitleaks: Failed to download resource "glibc--bootstrap-gcc" Download failed: https://github.com/Homebrew/glibc-bootstrap/releases/download/1.0.0/bootstrap-gcc-9.5.0.tar.gz,。还是网络权限问题,如果镜像多次连接不上,有网络问题报错比如尝试直接从源代码编译安装:
brew install gitleaks --build-from-source
(3)git clone https://github.com/gitleaks/gitleaks.git
如果还是装不上,尝试手动(官网教程的第四条):
这里因为又要连github,网络不通畅就多试几次,我大概试了8次左右吧。
(4)make build
打开进入安装好的gitleaks目录,输入指令make build
可能会有的报错:
①go fmt ./... go: github.com/BobuSumisu/aho-corasick@v1.0.3: Get https://proxy.golang.org/github.com/%21bobu%21sumisu/aho-corasick/@v/v1.0.3.mod: dial tcp 142.250.217.113:443: connect: connection refused make: *** [Makefile:13: format] Error 1
这个错误表明 go fmt
过程中尝试从 proxy.golang.org
下载依赖包时,因网络问题(例如连接被拒绝)而失败。通常这是由于网络限制、代理设置或防火墙问题导致无法访问外部资源。
1. 设置 Go Modules 代理
可以尝试设置 Go 的代理为国内的代理服务,这通常可以解决网络访问问题。你可以通过以下命令设置 Go Modules 的代理:
export GOPROXY=https://goproxy.cn,direct
再次 make build
②build github.com/zricethezav/gitleaks/v8: cannot load embed: malformed module path "embed": missing dot in first path element make: *** [Makefile:13: format] Error 1
这个错误提示 embed
包无法加载,原因是 Go 的版本过低,因为 embed
包是在 Go 1.16 中引入的。如果你正在使用较低版本的 Go,这个包会导致构建失败。
解决方案:升级GO版本
首先,确认你当前使用的 Go 版本是否为 1.16 及以上。
go version
如果 Go 版本低于 1.16,可以使用以下命令更新 Go
sudo apt update
sudo apt install golang-go
如果已经装了brew也可以尝试
brew update
brew upgrade go
③更新的时候返回golang-go is already the newest version
在这种情况下,你可以手动下载并安装最新版本的 Go。需要先卸载旧版本,再下载新的:
sudo apt remove golang-go
sudo apt remove --auto-remove golang-go
wget https://go.dev/dl/go1.21.1.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz# 将 Go 的二进制文件路径添加到系统环境变量 PATH 中
export PATH=$PATH:/usr/local/go/bin
④如果用brew upgrade go,要确保之前在brew已经装过了go,否则可能报错Error: go not installed
执行:
brew install go
成功的话会显示Summary……
⑤如果安装完成go version还是没有更新,可能是环境变脸没有配置
编辑你的 .bashrc
或 .zshrc
文件,添加以下内容:
export PATH=$PATH:/home/linuxbrew/.linuxbrew/bin
保存更改
source ~/.bashrc # 或 `source ~/.zshrc`,取决于你使用的 shell
⑥go fmt ./... go: updates to go.mod needed; to update it: go mod tidy make: *** [Makefile:13: format] Error 1
go.mod
需要更新。
在 gitleaks
项目根目录下运行以下命令:
go mod tidy# 之后再运行make build
⑥出现 gitleaks: command not found
错误,可能是因为 gitleaks
可执行文件没有添加到系统的 PATH
中。
- 编辑
~/.bashrc
或~/.zshrc
文件:
nano ~/.bashrc # 或者 nano ~/.zshrc
-
在文件末尾添加以下行,将
gitleaks
目录添加到PATH
中:export PATH=$PATH:/path/to/gitleaks # 这里改成自己的安装路径
-
保存并重新加载 shell 配置:
source ~/.bashrc # 或者 source ~/.zshrc
(5)开始扫描
具体的指令官方也给出了
Usage:gitleaks [command]Available Commands:completion generate the autocompletion script for the specified shelldetect detect secrets in codehelp Help about any commandprotect protect secrets in codeversion display gitleaks versionFlags:-b, --baseline-path string path to baseline with issues that can be ignored-c, --config string config file pathorder of precedence:1. --config/-c2. env var GITLEAKS_CONFIG3. (--source/-s)/.gitleaks.tomlIf none of the three options are used, then gitleaks will use the default config--exit-code int exit code when leaks have been encountered (default 1)-h, --help help for gitleaks-l, --log-level string log level (trace, debug, info, warn, error, fatal) (default "info")--max-target-megabytes int files larger than this will be skipped--no-color turn off color for verbose output--no-banner suppress banner--redact redact secrets from logs and stdout-f, --report-format string output format (json, csv, junit, sarif) (default "json")-r, --report-path string report file-s, --source string path to source (default ".")-v, --verbose show verbose output from scanUse "gitleaks [command] --help" for more information about a command.
我这里以扫描一个本地文件为例:
如果要在终端里面展示扫描结果,--no-git后面加上 --verbose
如果要把结果保存到本地加上--report-path
相关文章:

linux/ubuntu国内镜像安装gitleaks敏感信息扫描工具教程及避坑点
1、背景 利用gitleaks扫描git仓库或者文件 GitHub上有比较详细的教程,但是由于每个人的安装环境不同,坑很多,网上能查到的有效信息也比较少。这里就以我坑很多的环境为例,捋一下步骤。 GitHub - gitleaks/gitleaks: Protect an…...
JavaScript高级程序设计基础(二)
二、语言基础 2.1语法 (简单的语法基础将在文章省略) 2.1.1严格模式 严格模式是一种不同的 JavaScript 解析和执行模型,不规范写法在这种模式下会被处理 只需在脚本开头加上"use strict" 也可以单独指定一个函数在严格模式下执…...
使用Spring Boot开发自习室预定系统
开发一个自习室预定系统涉及到用户管理、自习室管理、预定管理等功能。以下是使用Spring Boot开发自习室预定系统的步骤和关键点: 1. 需求分析 确定系统的基本需求,例如: 用户注册和登录管理员管理自习室信息用户浏览可用自习室用户预定自…...
最近读书总结
1《More Joel on Software》读后感【2024年8月29日】 1.1 本书概要 本书讲解了如何发现优秀的IT人才,并把他们招聘进来;如何对智力密集型的IT企业(软件企业)进行管理,即最好采用情感认同法;对计算机大学生…...

python列表判断是否为空的三种方式
#列表是否为空判断 a[]一: if a:print(not null) else:print(null)二: b len(a) if b 0:print(null) else:print(not null)三: if not a:print(null) else:print(not null)运行结果:...

二十三种模式之原型模式(类比制作陶器更好理解一些)
1. 设计模式的分类 创建型模式(五种):工厂方法模式、单例模式、抽象工厂模式、原型模式、建造者模式。 结构型模式(七种):适配器模式、代理模式、装饰器模式、桥接模式、外观模式、享元模式、组合模式。 行为型模式(十一种):状态模式、模板方…...

9.9日记录
1.常见排序算法的复杂度 1.快速排序 1.1快速排序为什么快 从名称上就能看出,快速排序在效率方面应该具有一定的优势。尽管快速排序的平均时间复杂度与“归并排序”和“堆排序”相同,但通常快速排序的效率更高,主要有以下原因。 出现最差情况…...

鸿蒙交互事件开发04——手势事件
1 概 述 手势事件是移动应用开发中最常见的事件之一,鸿蒙提供了一些方法来绑定手势事件。通过给各个组件绑定不同的手势事件,并设计事件的响应方式,当手势识别成功时,ArkUI框架将通过事件回调通知组件手势识别的结果。 …...

研1日记9
1.理解conv1d和conv2d a. 1和2处理的数据不同,1维数据和图像 b. 例如x输入形状为(32,19,512)时,卷积公式是针对512的,而19应该变换为参数中指定的输出通道。 2.“SE块”(Squeeze-and-Excitation Block)它可以帮助模…...
HAL库学习目录查询表
日期内容2024.09.11基于STM32C8T6的CubeMX:HAL库点亮LED2024.09.11STMCuBeMX新建项目的两种匪夷所思的问题2024.09.11STMCubeMX文件下载后会出现其他项目无法下载的问题...
pandas DataFrame日期字段数据处理
pandas DataFrame日期字段数据处理 1、pandas读取表格文件日期字段存入数据库不需要时分秒 在使用 pandas 读取表格文件,并将日期字段存入数据库时,如果你只关心日期部分而不需要时分秒,可以通过以下步骤来处理: 读取数据并转换日期字段: 首先,你需要读取你的数据,并确…...
swift:qwen2 VL 多模态图文模型lora微调swift
参考: https://swift.readthedocs.io/zh-cn/latest/Multi-Modal/qwen2-vl%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.html 在线demo: https://colab.research.google.com/drive/16yl6Z0wxHLX3qJ5q-SIbvPn251k3r2JC?usp=sharing 安装: !git clone https://github.com/modelsc…...
Vue.js中computed的使用方法
在Vue.js中,computed 属性是基于它们的依赖进行缓存的响应式属性。只有当相关依赖发生改变时,才会重新求值。这意味着只要computed属性依赖的源数据(如data中的属性)没有发生变化,多次访问computed属性会立即返回之前的…...
python之pyecharts制作可视化数据大屏
文章目录 前言一、安装 Pyecharts二、创建 Pyecharts 图表三、设计大屏布局四、实时数据更新五、部署和展示总结前言 使用 Pyecharts 制作可视化数据大屏是一个复杂但有趣的过程,因为 Pyecharts 本身是一个用于生成 Echarts 图表的 Python 库,而 Echarts 是由百度开发的一个…...

Chrome、Edge、360及Firefox浏览器加载多个ActiveX插件的介绍
allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品,致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefo…...
裸金属服务器与云服务器的区别有哪些?
随着云计算服务的快速发展,云服务器与裸金属服务器则称为各大企业基础设施的两大核心选择,会运用在不同的场景当中,本文就来介绍一下裸金属服务器与云服务器的区别都有哪些吧! 裸金属服务器相对于云服务器来说有着卓越的性能&…...

Pr:序列设置 - VR 视频
在“新建序列”对话框的“VR 视频” VR Video选项卡,或者在“序列设置”对话框的“VR 属性” VR Properties选项卡中,允许用户创建和编辑虚拟现实 (VR) 视频序列。 VR 视频能够提供 360 沉浸式的观看体验,通常使用专门的相机进行拍摄…...

采用qt做一个命令行终端
qt做一个类似系统命令行终端的工具,方便集成到自己的软件里使用,这样能保证软件的整体性,而且是真正的做到和系统命令行终端一样的交互方式,而不是单独搞个编辑框的方式输入命令(大部分博客都是做成这个样子࿰…...
TQA相关
ReAct Prompting: 原理、实现与应用 ReAct Prompting(推理与行动提示)是一种引导大型语言模型(LLM)进行推理和行动的策略,广泛应用于复杂问题求解、对话生成和自动化任务等领域。ReAct Prompting 通过将模型的思考过程…...

Spring Cloud之二 微服务注册
1:Intellij 新建服务 user-service 2:pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...