基于Centos:7 的docker 镜像制作支持ssh 的镜像,Dockerfile 配置文件内容如下
2023年5月21日...小于 1 分钟
基于Centos:7 的docker 镜像制作支持ssh 的镜像,Dockerfile 配置文件内容如下
FROM centos:7
MAINTAINER change_lee
RUN yum install -y openssl openssl-devel net-tools gcc gcc-devel
ENV PATH=$PATH:/usr/local/sshd/sbin
ADD openssh-8.1p1.tar.gz /root/
RUN cd /root ;\
mv openssh-8.1p1 openssh
RUN cd /root/openssh ; \
useradd sshd -s /sbin/nologin ;\
./configure --prefix=/usr/local/sshd ; \
make ; \
make install
ENV PASSWD="admin"
RUN rm -rf /root/openssh ; \
yum clean all ;\
mkdir -p /root/.ssh ;\
sed -i /PermitRootLogin/a"PermitRootLogin yes" /usr/local/sshd/etc/sshd_config ;\
sed -i /"PermitRootLogin yes"/a"PermitEmptyPasswords yes" /usr/local/sshd/etc/sshd_config ;
WORKDIR /root
EXPOSE 22
ENTRYPOINT echo $PASSWD | passwd root --stdin ;\
echo "PassWord is : $PASSWD" ; \
ifconfig eth0 | grep inet ; \
/usr/local/sshd/sbin/sshd -D -f /usr/local/sshd/etc/sshd_config
CMD bash
文件中涉及的openssh8.1p1 版本下载地址
root 默认 密码为 admin ,如果需要指定,在docker run 的时候使用 -e PASSWD="new passwd" 指定,如果不知道密码,可以使用docker logs 容器ID 可以查看密码
Dockerfile 配置ssh 是为了使用方便,所以在docker run 的时候建议使用 -p/-P 暴露端口,使用 --name /--hostname指定容器名和主机名(-h 也可以指定主机名)
贡献者
changelichangyangccm@163.com