用Dockerfile配置SSH远端登陆ubuntu

文件目录结构:

(1).authorized_keys(rsa秘钥)文件由mac 终端生成

(2).run.sh 启动ssh服务的shell脚本文件

#!/bin/bash
/usr/sbin/sshd -D

第一行代表指令运行需要的环境

Dockerfile代码:

FROM ubuntu
MAINTAINER “niwanglongSshUbuntu”
#apt-get 换源
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt-get update

#安装SSH服务
RUN apt-get install -y openssh-server
RUN mkdir -p /var/run/sshd
RUN mkdir -p /root/.ssh

#配置SSH
#设置ssh远程登陆密码
RUN echo "root:123456" | chpasswd
RUN sed -ri 's/^PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config  
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config  

#复制Rsa文件到相应位置,并赋予脚本可执行权限
ADD authorized_keys /root/.ssh/authorized_keys
ADD run.sh /run.sh
RUN chmod 755 /run.sh

#开放端口
EXPOSE 22

#设置自启动命令
CMD ["/bin/bash","/run.sh"]

dokcer build 后,运行容器即可。不懂的可以看下我宁外一篇文章,Docker 配置前端开发环境实战

Paste_Image.png

在mac下输入dockerfile 设置的root密码即可登录了。

遇到的问题


1.提示远端rsa秘钥已改变

删除/users/yixinmac/.ssh目录下的文件,然后重新生成rsa秘钥,再build新的配置镜像,当然你也可以进入容器替换掉/root/.ssh/authorized_keys目录下的秘钥文件再重启ssh服务即可。这里得力于docker的联合文件系统,旧镜像存在的情况下,我们可以快速的再新建新的镜像。
docker build -t registry:tag .走起

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容