!Yopass-horizontal

!demo
Yopass是一个用于快速、安全分享秘密信息的项目。其核心目的是减少密码等敏感信息在工单系统、Slack消息和电子邮件中的传播。消息在浏览器本地加密/解密,加密后的消息会发送到Yopass,但不包含解密密钥(解密密钥仅在加密时显示一次)。Yopass随后返回一个带有指定过期时间的一次性URL。
在线分享秘密信息没有绝对完美的方式,每种实现都存在权衡。Yopass设计为尽可能简单和“无状态”,同时不牺牲安全性。生成的UUID与提交加密消息的用户之间没有映射关系。最佳实践是通过其他渠道发送除密码外的所有上下文信息。
演示地址。若关注安全性,建议自行部署Yopass。
Yopass于2014年首次发布,由开发者维护并得到贡献者社区的支持。目前已被多家大型企业采用,部分企业如下。
如果您正在使用Yopass,并希望通过代码贡献之外的方式支持项目,可通过邮件致谢、考虑***,或同意在本说明中列出您的公司名称作为Yopass用户。
Yopass的主要设计目标是通过简单的Web界面让所有人轻松快速地分享秘密信息。同时提供命令行界面,以支持需要分享程序输出等场景。
console$ yopass --help Yopass - 安全分享秘密信息、密码和文件 标志: --api string Yopass API服务器地址 (默认 "[***]") --decrypt string 解密秘密信息URL --expiration string 秘密信息过期删除时间 [1h, 1d, 1w] (默认 "1h") --file string 从文件读取秘密信息(而非标准输入) --key string 手动加密/解密密钥 --one-time 一次性下载 (默认 true) --url string Yopass公共URL (默认 "[***]") 设置从标志、环境变量或配置文件(位于~/.config/yopass/defaults.<json,toml,yml,hcl,ini,...>)中读取,优先级依次为标志、环境变量、配置文件。环境变量需以YOPASS_为前缀,连字符转换为下划线。 示例: # 从标准输入加密并分享秘密信息 printf 'secret message' | yopass # 加密并分享秘密文件 yopass --file /path/to/secret.conf # 分享秘密信息,支持全天多次下载 cat secret-notes.md | yopass --expiration=1d --one-time=false # 解密秘密信息到标准输出 yopass --decrypt [***] 网站: [***]
以下是安装CLI的方法:
从源码编译(需要Go >= v1.21)
consolego install github.com/jhaals/yopass/cmd/yopass@latest
命令行标志:
console$ yopass-server -h --address string 监听地址 (默认 0.0.0.0) --database string 数据库后端 ('memcached' 或 'redis') (默认 "memcached") --max-length int 加密秘密信息的最大长度 (默认 ***) --memcached string Memcached地址 (默认 "localhost:***") --metrics-port int 监控指标服务器监听端口 (默认 -1) --port int 监听端口 (默认 1337) --redis string Redis URL (默认 "redis://localhost:6379/0") --tls-cert string TLS证书路径 --tls-key string TLS密钥路径 --cors-allow-origin Access-Control-Allow-Origin CORS设置 (默认 *) --force-onetime-secrets 拒绝创建非一次性秘密信息 --disable-upload 禁用/file上传端点 --prefetch-secret 显示秘密信息可能为一次性下载的提示 (默认 true) --disable-features 禁用前端功能部分 --no-language-switcher 禁用UI中的语言切换器 --trusted-proxies strings 用于验证X-Forwarded-For头的可信代理IP地址或CIDR块 --privacy-notice-url string 隐私声明页面URL --imprint-url string ***声明页面URL
加密的秘密信息可通过更改--database标志存储在Memcached或Redis中。
当Yopass部署在反向代理或负载均衡器(如Nginx、Caddy、Cloudflare或AWS ALB)之后时,可能需要记录真实客户端IP而非代理IP。Yopass支持可信代理配置,以安全处理X-Forwarded-For头。
安全说明:仅当请求来自显式配置的可信代理时,才会信任X-Forwarded-For头。这可防止来自不受信任来源的IP欺骗。
bash# 信任单个代理IP yopass-server --trusted-proxies 192.168.1.100 # 信任多个代理IP yopass-server --trusted-proxies 192.168.1.100,10.0.0.50 # 信任代理子网(CIDR表示法) yopass-server --trusted-proxies 192.168.1.0/24,10.0.0.0/8 # 环境变量(适用于Docker) export TRUSTED_PROXIES="192.168.1.0/24,10.0.0.0/8" yopass-server
未配置可信代理时,Yopass将始终使用直接连接的IP,这是推荐的默认行为。
使用Docker Compose文件deploy/with-nginx-proxy-and-letsencrypt/docker-compose.yml可搭建带TLS传输加密和Let's Encrypt自动证书续期的Yopass实例。首先将域名指向运行Yopass的主机,然后替换docker-compose.yml中的VIRTUAL_HOST、LETSENCRYPT_HOST和LETSENCRYPT_EMAIL占位符为实际值。切换到部署目录并启动容器:
consoledocker-compose up -d
Yopass将通过VIRTUAL_HOST/LETSENCRYPT_HOST指定的域名可用。
已有反向代理处理TLS的高级用户可使用“insecure”设置:
consolecd deploy/docker-compose/insecure docker-compose up -d
然后将反向代理指向127.0.0.1:80。
带TLS加密:
consoledocker run --name memcached_yopass -d memcached docker run -p 443:1337 -v /local/certs/:/certs \ --link memcached_yopass:memcached -d jhaals/yopass --memcached=memcached:*** --tls-key=/certs/tls.key --tls-cert=/certs/tls.crt
Yopass将通过主机的所有IP(包括公网IP)的443端口可用。若要限制为特定IP,使用-p 127.0.0.1:443:1337。
不带TLS加密(需反向代理处理传输加密):
consoledocker run --name memcached_yopass -d memcached docker run -p 127.0.0.1:80:1337 --link memcached_yopass:memcached -d jhaals/yopass --memcached=memcached:***
然后将处理TLS的反向代理指向127.0.0.1:80。
consolekubectl apply -f deploy/yopass-k8.yaml kubectl port-forward service/yopass 1337:1337
此配置仅用于快速启动,实际运行时请配置TLS。
Yopass可选择提供OpenMetrics / Prometheus文本格式的指标。使用标志--metrics-port <port>可让Yopass在指定端口启动第二个HTTP服务器,通过/metrics路径提供指标。
支持的指标:
process_的基本进程指标(如CPU、内存和文件描述符使用情况)go_的Go运行时指标(如Go内存使用、垃圾回收统计等)yopass_http_的HTTP请求指标(HTTP请求计数器和HTTP请求延迟直方图)Yopass支持添加其他语言的翻译。现代前端使用react-i18next内置国际化支持,目前支持英语和瑞典语。欢迎通过拉取请求贡献翻译。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429