docker-ssh-forwarding/Dockerfile

33 lines
877 B
Docker

# 使用Ubuntu作为基础镜像
FROM ubuntu
LABEL maintainer="ZK <zkalgclub@163.com>"
# 定义环境变量
ENV MYPATH /app
ENV REMOTE_PORT 22
ENV LOCAL_LISTEN_PORT 8080
ENV LOCAL_LISTEN_HOST localhost
ENV REMOTE_LISTEN_PORT 80
ENV REMOTE_USER root
ENV REMOTE_HOST example.com
# 安装必要的软件包
RUN apt-get update && apt-get install -y \
vim \
net-tools \
iputils-ping \
openssh-client \
openssh-server && \
rm -rf /var/lib/apt/lists/*
WORKDIR $MYPATH
# 生成SSH密钥对
RUN ssh-keygen -t rsa -b 4096 -N "" -f /root/.ssh/id_rsa
# 创建一个脚本来运行SSH命令
RUN echo "#!/bin/bash\n\
ssh -C -f -N -g -p \$REMOTE_PORT -L \$LOCAL_LISTEN_PORT:\$LOCAL_LISTEN_HOST:\$REMOTE_LISTEN_PORT \$REMOTE_USER@\$REMOTE_HOST \n\
while true; do sleep 10; done;" > /start.sh && chmod +x /start.sh
CMD ["/start.sh"]