Docker 以 ubuntu 基础镜像制作 ssh-启动时自定义 root 密码

一、创建 entrypoint.sh

#!/bin/bash
echo "root:${ROOT_PASSWORD}" | chpasswd
/usr/sbin/sshd -D

创建 entrypoint.sh 主要是为了 docker run 启动时可以根据环境变量修改 root 密码。

二、创建 dockerfile

FROM ubuntu:20.04

ENV ROOT_PASSWORD "root"

COPY entrypoint.sh /entrypoint.sh

RUN sed -i "s/archive.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list && apt update && \
apt-get install -y openssh-server

RUN mkdir /var/run/sshd && \
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
chmod +x /entrypoint.sh

ENTRYPOINT ["bash", "-c", "/entrypoint.sh"]

dockerfile 内容主要是指定了 root 默认密码为 root,安装 openssh-server,然后修改配置文件使 root 可以远程登录,并且将入口文件entrypoint.sh复制到镜像内。

三、制作和启动

# 制作
docker build -t myssh .
# 启动 (如果不指定ROOT_PASSWORD, 默认密码为 root)
docker run -d --name myssh -p 222:22 -e ROOT_PASSWORD="123456" myssh
# 测试
ssh localhost -p 222

四、其他

1、启动 sshd 报错 Missing privilege separation directory: /run/sshd

是因为没有创建 /run/sshd 文件夹。创建镜像时,加上 mkdir /var/run/sshd 即可。

AD: 【腾讯云服务器大降价】 2核4G 222元/3年 1核2G 38元/年
网站:阿蛮君博客
标题:Docker 以 ubuntu 基础镜像制作 ssh-启动时自定义 root 密码
链接:https://www.amjun.com/520.html
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!
THE END
分享
二维码
打赏
海报
Docker 以 ubuntu 基础镜像制作 ssh-启动时自定义 root 密码
一、创建 entrypoint.sh #!/bin/bash echo "root:${ROOT_PASSWORD}" | chpasswd /usr/sbin/sshd -D 创建 entrypoint.sh 主要是为了 docker run 启动……
<<上一篇
下一篇>>