轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
jnovack/autossh
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

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

autossh Docker 镜像下载 - 轩辕镜像

autossh 镜像详细信息和使用指南

autossh 镜像标签列表和版本信息

autossh 镜像拉取命令和加速下载

autossh 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

autossh
jnovack/autossh
自动构建

autossh 镜像详细信息

autossh 镜像标签列表

autossh 镜像使用说明

autossh 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

高度可定制的AutoSSH Docker容器
30 收藏0 次下载activejnovack镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

autossh 镜像详细说明

autossh 使用指南

autossh 配置说明

autossh 官方文档

autossh

![Docker]([] ![Github]([]

高度可定制的AutoSSH Docker容器。

概述

jnovack/autossh 是一个轻量级(约15MB)镜像,旨在提供一种安全的方式建立SSH隧道,无需在镜像中包含密钥或链接到主机。

市面上有数千个autossh Docker容器,为何选择此镜像?我们希望您能发现它更易于使用:体积更小、可定制性更强、支持自动构建、使用简单,并且希望您能从中学***到知识。我们尽可能遵循标准和既定约定,使其更易于理解,并方便您将本项目的代码行复制到其他项目中,以扩展您的知识!

描述

autossh 是一个启动ssh副本并对其进行监控的程序,若ssh进程终止或停止传输流量,autossh会必要时重启它。

在开始之前,我们先定义一些术语:

  • local(本地)- 此Docker容器。
  • target(目标)- 隧道的端点和最终目的地。
  • remote(远程)- 用于隧道传输的“中间人”或代理服务器,通过它连接到target。
  • source(源)- 起始端点,无法直接访问target,但可以访问remote。

通常,local 机器与 target 相同,但由于使用Docker,我们需要将local容器与希望autossh连接的target端点分离。通常,autossh就是从local运行的。

一般情况下,target可能位于没有公网IP的家庭局域网段;而remote机器拥有target和source都能访问的地址;source只能访问remote。

target ---> |防火墙| >--- remote ---< |防火墙| <--- source
10.1.1.101               203.0.113.10            192.168.1.101

target(运行autossh)连接到remote服务器并保持隧道活跃,使source可以通过remote代理访问target上的资源。这可视为“远程端口转发”。

示例

您在target(家庭计算机)上运行Docker。(注意:Linux Docker主机自动创建docker0接口,IP为172.17.0.1,以便容器可以路由到主机并访问其他网络。本示例中,启动的容器IP可能为172.17.0.2。)您有一台互联网上的虚拟专用服务器(VPS),可被所有设备访问。此local Docker容器将连接到remote VPS,并将remote的2222端口隧道转发到target的22端口。任何连接到remote 2222端口的请求,实际上都会连接到target的22端口。这称为“反向隧道”。

      TARGET_PORT                  REMOTE_PORT    TUNNEL_PORT
 target <--------------- local ------------> remote <--------------- source
 10.1.1.101           172.17.0.2          203.0.113.10        192.168.1.101

LOCAL(172.17.0.2)设备连接到REMOTE(203.0.113.10)的REMOTE_PORT(:22),以在REMOTE(203.0.113.10)上创建TUNNEL_PORT(:***)隧道。

SOURCE(192.168.1.101)连接到REMOTE(203.0.113.10)的TUNNEL_PORT(:***),以访问TARGET(10.1.1.101)的TARGET_PORT(:22)。

默认情况下,SSH服务器应用(如OpenSSH、Dropbear等)仅允许从回环接口(127.0.0.1)连接到转发端口。

这意味着,您必须先通过身份验证连接到remote,并将其用作“跳转点”,然后才能连接到隧道。

在上述示例中,从source,您必须先通过SSH连接到remote(203.0.113.10),然后通过连接127.0.0.1:TUNNEL_PORT访问target(10.1.1.101)。这是一个两步过程。

要将其简化为一步过程(从source通过remote直接连接到target),您必须在remote上进行一些安全更改(不建议)。请参见下文的SSH_BIND_IP部分。

免责声明

通过将remote的2222端口隧道转发到target的22端口,您可能会将家庭服务器(进而您的家庭网络)暴露在互联网上,这通常被称为“一件坏事(TM)”。请确保适当使用防火墙、fail2ban脚本、非root访问、仅基于密钥的身份验证以及其他必要的安全措施。

设置

首先,您需要在Docker主机上生成SSH密钥。这样可以确保容器的密钥与普通用户密钥分离,以便在需要撤销其中一个时不会影响另一个。

$ ssh-keygen -t rsa -b 4096 -C "autossh" -f autossh_id_rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jnovack/autossh_id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jnovack/autossh_id_rsa.
Your public key has been saved in /home/jnovack/autossh_id_rsa.pub.
The key fingerprint is:
00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff autossh
The key's randomart image is:
+-----[ RSA 4096]-----+
|     _.-'''''-._     |
|   .'  _     _  '.   |
|  /   (_)   (_)   \  |
| |  ,           ,  | |
| |  \`.       .`/  | |
|  \  '.`'""'"`.'  /  |
|   '.  `'---'`  .'   |
|     '-._____.-'     |
+---------------------+

命令行选项

一个Docker容器怎能没有定制功能?我们提供了大量可设置的环境变量。

环境变量

所有环境变量均以SSH_为前缀,并非因为必须隧道传输SSH,而是为了便于分组。唯一需要的SSH连接是从LOCAL设备到REMOTE服务器。但是,如果您希望通过证书安全地隧道传输其他协议(如mysql、redis、mongodb),您可能需要考虑我的另一个项目ambassador。

SSH_REMOTE_USER

指定remote端点上的用户名。(默认值:root)

SSH_REMOTE_HOST

指定remote端点的地址(首选IP)。(默认值:localhost)

SSH_REMOTE_PORT

指定连接到remote端点的SSH端口。(默认值:22)

SSH_TUNNEL_PORT

指定remote端点上作为隧道入口的端口号。(默认值:>32768的随机端口)如果不希望每次重启jnovack/autossh时使用新端口,您可能需要显式设置此值。

此选项会根据SSH_MODE(见下文)反向生效。

SSH_TARGET_HOST

指定target的地址(首选IP)。

SSH_TARGET_PORT

指定target端点上作为隧道出口或目标服务的端口号。通常是SSH(端口22),但您也可以隧道传输其他服务,如redis(端口6379)、elasticsearch(端口9200)或HTTP(端口80)和HTTPS(端口443)。

如果您希望通过证书安全地隧道传输其他协议(如mysql、redis、mongodb),您可能需要考虑我的另一个项目ambassador。

SSH_STRICT_HOST_IP_CHECK

如果提供了known_hosts文件,但希望不检查主机的IP地址,设置为false。这有助于避免动态IP主机的问题,但会降低对DNS欺骗***的防护。默认启用主机IP检查。

SSH_KEY_FILE

如果希望将密钥存储在Docker Secrets中,可将此设置为/run/secrets/*secret-name*。

SSH_KNOWN_HOSTS_FILE

如果希望将known_hosts存储在Docker Secrets中,可将此设置为/run/secrets/*secret-name*。

SSH_MODE

定义隧道的设置方式:

  • -R:默认,远程转发模式。
  • -L:本地转发模式。

SSH_BIND_IP

您可以定义隧道在remote(SSH_MODE=-R时)或local(SSH_MODE=-L时)上绑定的IP地址。默认仅127.0.0.1。

SSH_MODE=-R(默认)

警告:此过程涉及更改服务器安全设置,会将您的target暴露给其他网络,甚至可能是互联网。不建议在不采取额外预防措施的情况下执行此过程。

除非正确配置remote服务器配置文件中的GatewayPorts变量,否则此选项不会生效。请参阅您的SSH服务器文档以获取正确设置。

SSH_MODE=-L

您可能希望将此设置为0.0.0.0,以便将SSH_TUNNEL_PORT绑定到LOCAL侧的所有接口。

SSH_SERVER_ALIVE_INTERVAL

设置超时时间(秒),如果在此时间内未从服务器收到数据,ssh(1)将通过加密通道发送消息以请求服务器响应。

  • 0:关闭此选项。
  • 10:此镜像的默认值。

更多详细信息请参见ssh_config(5)。

SSH_SERVER_ALIVE_COUNT_MAX

设置在终止并重新建立连接之前的活动消息阈值。

  • 3:此镜像的默认值。
  • SSH_SERVER_ALIVE_INTERVAL=0时,此变量无效。

更多详细信息请参见ssh_config(5)。

其他环境变量

  • autossh(1)
  • ssh_config(5)

挂载

对于简单使用,挂载是可选的。使用环境变量更为优越,因为它们可以存储在配置文件中,便于传输(和备份!)。

/id_rsa

挂载在设置步骤中生成的密钥,或设置SSH_KEY_FILE。

-v /path/to/id_rsa:/id_rsa

/known_hosts

如果希望启用StrictHostKeyChecking,挂载known_hosts文件,或设置SSH_KNOWN_HOSTS_FILE。

-v /path/to/known_hosts:/known_hosts

示例

docker-compose.yml

在第一个示例ssh-to-docker-host中,将从Docker容器(名为autossh-ssh-to-docker-host)到运行Docker容器的主机建立隧道。

使用时,通过SSH连接到虚拟互联网地址203.0.113.10:2222,您将被转发到172.17.0.2:22(运行Docker容器的主机)。

在第二个示例ssh-to-lan-endpoint中,将建立到Docker主机私有局域网内主机的隧道。通过SSH连接到虚拟互联网地址203.0.113.10:22222,将通过Docker容器、Docker主机,最终连接到私有局域网中的192.168.123.45:22。

最后,在第三个示例ssh-local-forward-on-1234中,将在容器上创建到198.168.123.45:22的本地转发,映射到端口1234。隧道将通过203.0.113.10:22222创建。

version: '3.7'

services:
  ssh-to-docker-host:
    image: jnovack/autossh
    container_name: autossh-ssh-to-docker-host
    environment:
      - SSH_REMOTE_USER=sshuser
      - SSH_REMOTE_HOST=203.0.113.10
      - SSH_REMOTE_PORT=2222
      - SSH_TARGET_HOST=172.17.0.2
      - SSH_TARGET_PORT=22
    restart: always
    volumes:
      - /etc/autossh/id_rsa:/id_rsa
    dns:
      - 8.8.8.8
      - 1.1.1.1

  ssh-to-lan-endpoint:
    image: jnovack/autossh
    container_name: autossh-ssh-to-lan-endpoint
    environment:
      - SSH_REMOTE_USER=sshuser
      - SSH_REMOTE_HOST=203.0.113.10
      - SSH_REMOTE_PORT=22222
      - SSH_TARGET_HOST=198.168.123.45
      - SSH_TARGET_PORT=22
    restart: always
    volumes:
      - /etc/autossh/id_rsa:/id_rsa
    dns:
      - 8.8.8.8
      - 4.2.2.4
  
  ssh-local-forward-on-1234:
    image: jnovack/autossh
    container_name: autossh-ssh-local-forward
    environment:
      - SSH_REMOTE_USER=sshuser
      - SSH_REMOTE_HOST=203.0.113.10
      - SSH_REMOTE_PORT=22222
      - SSH_BIND_IP=0.0.0.0
      - SSH_TUNNEL_PORT=1234
      - SSH_TARGET_HOST=198.168.123.45
      - SSH_TARGET_PORT=22
      - SSH_MODE=-L
    restart: always
    volumes:
      - /etc/autossh/id_rsa:/id_rsa
    dns:
      - 8.8.8.8
      - 4.2.2.4
    

多架构镜像

此镜像在Docker Hub上自动构建以下架构版本:

  • amd64
  • armv6(如Raspberry Pi Zero)
  • armv7(如Raspberry Pi 2至4)
  • arm64v8(如Amazon EC2 A1实例)===SHORT_DESC=== 高度可定制的AutoSSH Docker容器 ===FULL_DESC===# autossh

![Docker]([] ![Github]([]

高度可定制的AutoSSH Docker容器。

概述

jnovack/autossh 是一款轻量级(约15MB)镜像,旨在提供安全的SSH隧道建立方式,无需在镜像中包含密钥或链接到主机。与其他autossh容器相比,它体积更小、可定制性更强、支持自动构建且易于使用,遵循标准约定以便于理解和知识扩展。

描述

autossh 用于启动SSH进程并对其进行监控,当SSH进程终止或停止传输流量时自动重启。

术语定义

  • local(本地)- 此Docker容器。
  • target(目标)- 隧道的最终目的地端点。
  • remote(远程)- 隧道传输的代理服务器,用于连接到target。
  • source(源)- 无法直接访问target但可访问remote的起始端点。

通常target位于无公网IP的局域网,remote拥有公网IP且可被target和source访问,source通过remote访问target:

target ---> |防火墙| >--- remote ---< |防火墙| <--- source
10.1.1.101               203.0.113.10            192.168.1.101

示例

在家庭计算机(target)上运行Docker,

查看更多 autossh 相关镜像 →

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 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 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.