本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

SSH Piper 作为一个类代理工具,通过 username、src ip 等信息路由连接。
+---------+ +------------------+ +-----------------+ | | | | | | | Bob +----ssh -l bob----+ | SSH Piper +-------------> Bob' machine | | | | | | | | | +---------+ | | | | +-----------------+ +---> pipe-by-name--+ | +---------+ | | | | +-----------------+ | | | | | | | | | Alice +----ssh -l alice--+ | +-------------> Alice' machine | | | | | | | +---------+ +------------------+ +-----------------+ Downstream SSH Piper Upstream
docker run farmer1992/sshpiperd
使用工作目录上游驱动运行
docker run -d -p 2222:2222 \ -v /etc/ssh/ssh_host_rsa_key:/etc/ssh/ssh_host_rsa_key \ -v /YOUR_WORKING_DIR:/var/sshpiper \ farmer1992/sshpiperd
使用额外挑战运行
使用环境变量 SSHPIPERD_CHALLENGER 指定要使用的挑战程序
docker run -d -p 2222:2222 \ -e SSHPIPERD_CHALLENGER=pam \ -v /YOUR_PAM_CONFIG:/etc/pam.d/sshpiperd \ -v /etc/ssh/ssh_host_rsa_key:/etc/ssh/ssh_host_rsa_key \ -v /YOUR_WORKING_DIR:/var/sshpiper \ farmer1992/sshpiperd
运行 sshpiperd 示例目录中的 showme.sh 脚本,或复制粘贴以下命令运行:
go get github.com/tg123/sshpiper/sshpiperd && `go env GOPATH`/src/github.com/tg123/sshpiper/sshpiperd/example/showme.sh
示例脚本将设置一个 sshpiper 服务器,配置如下:
bitbucket -> ***:22 # ssh 127.0.0.1 -p 2222 -l bitbucket github -> ***:22 # ssh 127.0.0.1 -p 2222 -l github gitlab -> ***:22 # ssh 127.0.0.1 -p 2222 -l gitlab
连接到 gitlab:
$ ssh 127.0.0.1 -p 2222 -l gitlab Permission denied (publickey).
连接到 github.com:
$ ssh 127.0.0.1 -p 2222 -l github Permission denied (publickey).
sshpiper 提供了 3 个可插件化组件,用于高度自定义您的管道:
使用 sshpiperd daemon -h 了解更多信息
--upstream-driver=)上游驱动帮助 sshpiper 确定要连接的上游主机以及如何连接。例如,您可以通过配置上游驱动更改连接到上游 sshd 时的用户名。
工作目录驱动
工作目录是一个类似 /home 的目录。SSHPiperd 从 workingdir/[username]/ 读取文件以了解上游的配置。
数据库驱动
数据库上游驱动连接到流行的数据库,如 mysql、pg 或 sqlite 等,以提供上游信息。
Kubernetes 驱动
Kubernetes 驱动可以使用 CRD 配置管道。
在 SSH 公钥认证期间,RFC 4252 第 7 节 中规定,SSH 客户端使用私钥对 session_id 和其他数据进行签名生成 sig。这是为了让服务器验证连接来自客户端而非"中间人"。
然而,sshpiper 实际上持有两个 SSH 连接,它正在执行"中间人"的操作。这两个 SSH 连接的 session_id 永远不会相同,因为它们是共享密钥的哈希值。RFC 4253 第 7.2 节。
为了支持公钥认证,sshpiper 将使用上游驱动提供的私钥修改 sig。例如,workingdir/[username]/ 中的 id_rsa。
工作原理:
+------------+ +------------------------+ | | | | | client | | SSH Piper | | PK_X +--------> | | | | | v | | | | Check PK_X | +------------+ | in authorized_keys | | | | | | | +----------------+ | v | | | | sign agian | | server | | using PK_Y +--------------> check PK_Y | | | | | | | | | +------------------------+ +----------------+
例如:
在客户端上:
ssh-copy-id -i PK_X test@sshpiper
在 ssh piper 服务器上:
ln -s ~test/.ssh/authorized_keys workingdir/test/authorized_keys ssh-keygen -N '' -f workingdir/test/id_rsa # 这是 PK_Y ssh-copy-id -i workingdir/test/id_rsa test@server
现在 ssh test@sshpiper -i PK_X,sshpiper 将向服务器发送 PK_Y 而不是 PK_X。
--challenger-driver=)sshpiper 允许您在连接到上游之前添加自己的挑战。如果客户端在此挑战中失败,连接将被关闭。然而,客户端必须通过上游服务器的认证才能建立整个连接。"额外挑战"是必需的,但并不足够。
当您想要使用公钥和类似 google-authenticator 之类的工具时,这非常有用。OpenSSH 不支持同时使用公钥和其他认证方式。
pam
Linux-PAM 挑战程序
此模块使用名为 sshpiperd 的 pam 服务
您可以在 /etc/pam.d/sshpiperd 配置规则
azdevcode
支持 Azure AD 设备代码授权,更多信息
authy
支持来自 <[***]> 的令牌和一键验证
--auditor-driver=)审计器为 SSH Piper 传输的消息提供钩子,可以将消息记录到磁盘或动态过滤某些特定消息。
SSH 会话日志记录 (--auditor-driver=typescript-logger)
当允许 record_typescript 时,每个管道连接将被记录到 --auditor-typescriptlogger-outputdir 中的 typescript) 文件。
文件格式与 scriptreplay(1) 兼容。
示例:
$ ./sshpiperd daemon --auditor-driver=typescript-logger ssh user_name@127.0.0.1 -p 2222 ... 执行一些命令 exit $ cd workingdir/user_name $ ls *.timing *.typescript ***.timing ***.typescript $ scriptreplay -t ***.timing ***.typescript # 将重放 SSH 会话
SSH Piper 附带了用于列出/添加/删除管道的工具。
使用 sshpiperd pipe -h 了解更多信息。
免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429