用的官方python镜像做开发, 暴露端口, 用pycharm ssh进去开发.
忽然发现本来ssh能连上, 但是更了新的python镜像连不上了.
有折腾了一下, 连上了.
主要是python官网镜像大约在3.6.5前后,换过base dedian版本:从Jesse 换成了stretch。
导致有点改变。本次记录以 3.6.5 stretch为准
1 参考官网 文档 dockerize a ssh service
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:screencast' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
但要注意 官网用的是ubuntu , python官方镜像是基于debian的,区别是
/etc/ssh/sshd_config
的初始值不同, 导致直接sed替换字符串失败,导致不允许root用密码登录
所以
1 注释掉sed 行 和最后一行, 最后一行改成
/etc/ssh/sshd_config
现在最后一行恢复成
退出attach,重新build 容器.
这时, 用ssh登录主机
发现报错:
需要在外部本机的known_hosts中删除开启ssh的docker容器信息
ssh-keygen -R "[127.0.0.1]:2221"
注意要有引号
然后连接成功.完事
所有评论(0)