# 从docker hub 下载centos 官方镜像 ``` docker pull centos:7 运行容器 docker run -i -t -p 1022:22 --name ssh centos:7 /bin/bash ``` ## 安装passwd,openssl,openssh-server ``` yum -y update yum install passwd openssl openssh-server -y 启动sshd: # /usr/sbin/sshd -D & ``` 正常启动需要pid文件存在,可以创建/var/run/ssh 这时报以下错误: ``` [root@ b5926410fe60 /\]# /usr/sbin/sshd 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 执行以下命令解决: [root@b5926410fe60 /\]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh\_host\_rsa\_key -N '' [root@b5926410fe60 /\]#ssh-keygen -q -t ecdsa -f /etc/ssh/ssh\_host\_ecdsa\_key -N '' [root@b5926410fe60 /\]# ssh-keygen -t dsa -f /etc/ssh/ssh\_host\_ed25519\_key -N '' 然后,修改 /etc/ssh/sshd\_config 配置信息: UsePAM yes 改为 UsePAM no UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no [root@b5926410fe60 /\]# sed -i "s/#UsePrivilegeSeparation.\*/UsePrivilegeSeparation no/g" /etc/ssh/sshd\_config [root@b5926410fe60 /\]#sed -i "s/UsePAM.\*/UsePAM no/g" /etc/ssh/sshd\_config 修改完后,重新启动sshd [root@b5926410fe60 /\]# /usr/sbin/sshd -D & 编写简单的启动脚本,方便直接后台运行容器ssh服务远程连接容器 vim /sshd.sh #!/bin/bash /usr/sbin/sshd -D chmod 755 /sshd.sh ``` ### 修改root 密码 ``` [root@b5926410fe60 /\]#passwd root ``` ### 将当前容器保存为镜像 ``` docker ps -all docker commit ce09 centos7-ssh ``` ![](https://images2017.cnblogs.com/blog/1220669/201708/1220669-20170816172851584-340233217.png) ### 在宿主机上基于新创建的镜像启动新的容器 \--先删除之前的容器docker ps -all ``` docker rm -f 4122f818a741 ``` ![](https://images2017.cnblogs.com/blog/1220669/201708/1220669-20170816172928428-33741906.png) --基于新镜像运行容器 ``` docker run -t -i -p 10021:22 --name one\_ssh centos7-ssh:latest /bin/bash 或 docker run -p 10022:22 -d centos7-ssh:latest /run.sh ``` 当容器内22端口启动后才可以用docker ps -a看到相应的端口 保证22端口启动后就可以进行远程 连接了。 可以直接拿此镜像使用了 最后修改:2022 年 02 月 07 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏