操作前首先 进行docker容器创建,名称为newTest
docker run -i -t --name=newTest docker.io/centos /bin/bash
1、安装OpenSSH
[root@fd2123aa64a2 ~]# yum -y install openssh-server
[root@fd2123aa64a2 ~]# yum -y install openssh-clients
2、启动SSH
[root@5c721cd6810b /]# /usr/sbin/sshd -D
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available -- exiting.
发现无法启动SSH,报错如上,解决方法如下,依次执行下列命令,一路按回车键确认
[root@5c721cd6810b /]# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
[root@5c721cd6810b /]# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""
[root@5c721cd6810b /]# ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""
再启动sshd服务,一切正常
3、编辑sshd_config配置文件
修改配置 UsePAM no,如下所示:
[root@5c721cd6810b /]# vi /etc/ssh/sshd_config
UsePAM no
4、修改root的密码
[root@5c721cd6810b /]# passwd root
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
5、保存新的镜像
将设置好的容器保存为新的镜像,保存前需要退出并停止容器,保存新的镜像名称为:new_test_ssh
[root@localhost zhpt]# docker commit newTest new_test_ssh
sha256:4ef834d09de5c202fd64e6f57cc1957b2b2e49757b3a58e180811cb99f2fc45a
查看新的镜像是否保存成功
[root@localhost zhpt]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
new_test_ssh latest 4ef834d09de5 55 seconds ago 295.2 MB
docker.io/centos latest 3fa822599e10 2 weeks ago 203.5 MB
docker.io/hello-world latest f2a91732366c 4 weeks ago 1.848 kB
6、启动镜像
使用宿主机的10322端口映射容器的22端口
[root@localhost zhpt]# docker run -d -p 10322:22 new_test_ssh /usr/sbin/sshd -D
2853ae52f76d8e730ad1965e49452446db507e73558ba55c5d7b4fccdf9b3d62
[root@localhost zhpt]#
此时外部可以通过宿主IP及10322端口进行SSH连接容器。