FROM centos:centos7.9.2009
RUN yum install -y openssh openssh-server openssh-clients
RUN yum install -y vim python tree net-tools bash-completion
RUN mkdir -p /var/run/sshd
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN /bin/echo 'root:123456' |chpasswd
# 将key生成在指定文件内
RUN rm -fr /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -P '' -N ''
# 配置ssh可以使用root登陆
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# 时区
RUN rm -fr /etc/localtime && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
# 开放22端口
EXPOSE 22
# 系统服务
ENTRYPOINT [ "/usr/sbin/init"]
构建镜像docker build -t ssh-centos:7.9 .
REPOSITORY TAG IMAGE ID CREATED SIZE
ssh-ubuntu 20.04 5fdf944573df 33 seconds ago 284MB
运行镜像: docker run --privileged=true -itd --name ssh-centos -p 2222:22 -v /data:/data ssh-centos:7.9
删除配置docker stop ssh-centos && docker rm ssh-centos
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c220e8a272b7 ssh-centos:7.9 "/usr/sbin/init" 5 seconds ago Up 4 seconds 0.0.0.0:222->22/tcp, :::222->22/tcp ssh-ubuntu
# 查看服务状态
docker exec -it ssh-centos bash
[root@817a8e98c5c0 /]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2023-03-17 14:37:22 UTC; 18s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 78 (sshd)
CGroup: /docker/817a8e98c5c0f1d657cb1f9a18a1ea86379339d8a72ddd9e89c5f9b29dcfa1c7/system.slice/sshd.service
└─78 /usr/sbin/sshd -D
‣ 78 /usr/sbin/sshd -D
Mar 17 14:37:22 817a8e98c5c0 systemd[1]: Starting OpenSSH server daemon...
Mar 17 14:37:22 817a8e98c5c0 sshd[78]: Server listening on 0.0.0.0 port 22.
Mar 17 14:37:22 817a8e98c5c0 sshd[78]: Server listening on :: port 22.
Mar 17 14:37:22 817a8e98c5c0 systemd[1]: Started OpenSSH server daemon.
docker exec -it ssh-centos bash
查看ip配置docker exec -it ssh-centos ifconfig
连接sshssh -p 2222 root@localhost, 也可以使用2222端口连接宿主机ssh -p 2222 root@ud1.
通过ansible控制自动化, host配置
tmp ansible_ssh_host=ud1 ansible_ssh_port=2222 ansible_ssh_pass='123456'
Content type
Image
Digest
sha256:070b3ffda…
Size
224.4 MB
Last updated
over 3 years ago
docker pull atxiaoming/ssh-centos:7.9