作者:zxy寒 | 来源:互联网 | 2023-01-10 07:46
准备文件mkdirssh_Dockerfile&&cdssh_Dockerfile在ssh_Dockerfile文件中添加3个文件分别是:run.sh(运行脚本),
准备文件
mkdir ssh_Dockerfile && cd ssh_Dockerfile
在ssh_Dockerfile文件中添加3个文件分别是:run.sh(运行脚本),Dockerfile, authorized_keys(存放公钥的文件)。
具体内容都在我的github上出于方便我还是粘一下内容
https://github.com/tonyxinminghui/ssh-serverDockerfile
Dockerfile
#所使用的基础镜像
FROM ubuntu:14.04
#添加作者信息
MAINTAINER tony 445241843@qq.com
#安装SSH服务
RUN apt-get install -y openssh-server
RUN mkdir -p /var/run/sshd
RUN mkdir -p /root/.ssh
#取消pam登录限制
RUN sed -ri 's/session required
pam_loginuid.so/#session required pam_loginuid.so' /etc/pam.d/sshd
#添加认证文件和启动脚本
ADD authorized_keys /root/.ssh/authorized_keys
#ADD run.sh /root/run.sh
RUN echo "#!/bin/bash" > /root/run.sh
RUN echo "/usr/sbin/sshd -D" >> /root/run.sh
RUN chmod u+x /root/run.sh
#暴露端口
EXPOSE 22
#设置默认启动的命令
CMD ["/root/run.sh"]
但是这里注意我在运行docker build ./的时候出现了
E: Unable to locate package openssh-server
的错误,解决方案是更新一下源RUN apt-get update就好了。
run.sh
启动脚本文件
#!/bin/bash
/root/sbin/sshd -D
authorized_keys
公钥文件,把运行ssh-client的主机的公钥加到authorized_keys中作为认证。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYMLZxEpNkR+FbHkaONWe/oRP2Pwy17ez4k4DWiKlaG/hP1fVOOTZUKaUupQvV5z8SVIx3wuasKE7bF+L0oA5arECfVAqHXxPR8gHQcrq4Nln2DRz05wkNdXEi3GSgN6a+fqL1+XDPYSzqDWCXVBBmpaTp1rlS3XPospQz4iXh+1LTBB9Rk5tp8zETCVMO7XdKiNqnZ35NPjT07/7wsIlmfwPzvGCK1q3+Z95zJ0Bxpy3Y+pIjy+ZnQW8SOytJ0r9zLz+iP+LOzLAIp0IkCeUBHiws16IT7gIgc3HTr6DZl3DdDEGKvB9bGvtYz4LPc+n25drnFwWP64vIJmY+cnSl root@ubuntu
这是我的虚拟机的公钥。
之后用docker build ./构建镜像。
过后的验证过程在我的上一篇博客中已经提过了。