# docker-ssh-forwarding 在Docker中使用SSH将远程服务器内部端口转发到本地内部网络 适合将生产环境中为了安全而不开放外部访问的端口,通过SSH安全转发功能,映射到内部网络指定主机和端口上。 ## 凭证 使用密钥登录,请提前将运行的用户的凭证放到远程服务器上(ssh-copy-id) 可以先启动容器后在容器内部使用 ``` ssh-copy-id -p 222 user@host # 若构建镜像时没有生成密钥凭证可先生成(容器内部执行) ssh-keygen -t rsa -b 4096 -N "" -f /root/.ssh/id_rsa ``` ## 构建 ``` docker build . -t sshforwarding ``` ## docker-compose.yml ``` version: "3" services: sshforwarding: image: sshforwarding container_name: sshforwarding ports: - 3307:3307 volumes: - .ssh:/root/.ssh environment: REMOTE_USER: 远程服务器用户名 REMOTE_HOST: 远程服务器主机名 REMOTE_PORT: 远程服务器SSH端口 REMOTE_LISTEN_PORT: 需要转发的服务器端口 LOCAL_LISTEN_PORT: 本地监听端口 LOCAL_LISTEN_HOST: 本地监听地址 stdin_open: true tty: true ```