# 基于Ubuntu 20.04创建SSH测试服务器 FROM ubuntu:20.04 # 设置非交互式安装,避免安装过程中的提示 ENV DEBIAN_FRONTEND=noninteractive # 更新包列表并安装必要的软件包 RUN apt-get update && \ apt-get install -y \ openssh-server \ sudo \ passwd \ netcat \ vim \ curl \ wget \ net-tools && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # 创建SSH运行所需的目录 RUN mkdir /var/run/sshd # 创建测试用户并设置密码 - 这些都是用于测试的弱密码账户 RUN useradd -m -s /bin/bash root2 && echo 'root2:password' | chpasswd RUN useradd -m -s /bin/bash admin && echo 'admin:123456' | chpasswd RUN useradd -m -s /bin/bash test && echo 'test:test123' | chpasswd RUN useradd -m -s /bin/bash user && echo 'user:user' | chpasswd RUN useradd -m -s /bin/bash guest && echo 'guest:guest' | chpasswd RUN useradd -m -s /bin/bash oracle && echo 'oracle:oracle' | chpasswd RUN useradd -m -s /bin/bash mysql && echo 'mysql:mysql' | chpasswd RUN useradd -m -s /bin/bash ftp && echo 'ftp:ftp' | chpasswd RUN useradd -m -s /bin/bash web && echo 'web:web123' | chpasswd RUN useradd -m -s /bin/bash service && echo 'service:service123' | chpasswd # 设置root用户密码(通常用于测试) RUN echo 'root:password' | chpasswd # 将admin和test用户添加到sudo组(模拟管理员权限用户) RUN usermod -aG sudo admin RUN usermod -aG sudo test # 创建一些常见的系统用户,用于测试不同的访问场景 RUN useradd -m -s /bin/bash postgres && echo 'postgres:postgres' | chpasswd RUN useradd -m -s /bin/bash redis && echo 'redis:redis123' | chpasswd RUN useradd -m -s /bin/bash mongodb && echo 'mongodb:mongo123' | chpasswd # 创建具有空密码的用户(极不安全,仅用于测试) RUN useradd -m -s /bin/bash anonymous RUN passwd -d anonymous # 暴露SSH端口 EXPOSE 22 # 复制启动脚本 COPY scripts/start-ssh.sh /start-ssh.sh RUN chmod +x /start-ssh.sh # 设置工作目录 WORKDIR /root # 启动SSH服务 CMD ["/start-ssh.sh"]