ssh连接docker镜像ubuntu与debian
用密码登录root
FROM ubuntu:16.04
RUN apt update
#sshd
RUN apt install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:aaaa' | 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"]
但python的官方镜像是基于debian的,用上面这个不行。
参考这个 https://github.com/Azure-Samples/docker-django-webapp-linux/blob/master/Dockerfile
众所周知,sshd_config是sshd的配置文件,其中PermitRootLogin
可以限定root用户通过ssh的登录方式,如禁止登陆、禁止密码登录、仅允许密钥登陆和开放登陆,以下是对可选项的概括:
参数类别 | 是否允许ssh登陆 | 登录方式 | 交互shell |
---|---|---|---|
yes | 允许 | 没有限制 | 没有限制 |
without-password | 允许 | 除密码以外 | 没有限制 |
forced-commands-only | 允许 | 仅允许使用密钥 | 仅允许已授权的命令 |
no | 不允许 | N/A | N/A |
以上选项中,yes和no的功能显而易见,只是很粗暴的允许、禁止root用户进行登陆。without-password
在yes的基础上,禁止了root用户使用密码登陆。
FROM python
LABEL author="xuqinghan"
LABEL purpose = '' RUN apt-get update \
&& apt-get -q -y dist-upgrade \
&& apt-get -q -y install --no-install-recommends openssh-server
#&& apt-get clean \
#&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN mkdir /var/run/sshd
RUN echo 'root:aaaa' | chpasswd RUN sed -i 's/PermitRootLogin without-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保持一样
用公钥
只要把本机的ida_rsa.pub上传到容器里就OK了,容器扮演的角色 和Github一样。container里运行着openssh server,host作为客户端去连接ssh server。
只不过,ida_rsa.pub的位置要注意,dockerfile的语法里ADD 要绝对路径 ,COPY 要 当前dockerfile路径和子路径 才能用相对路径。
所以为了简单起见,还是直接在外面复制出ida_rsa.pub到当前工程,然后再COPY。
如果有多个客户端(再说)
FROM python
LABEL author="xuqinghan"
LABEL purpose = '' RUN apt-get update \
&& apt-get -q -y dist-upgrade \
&& apt-get -q -y install --no-install-recommends openssh-server
#&& apt-get clean \
#&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN mkdir /var/run/sshd
RUN echo 'root:aaaa' | chpasswd RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config #在外面复制出id_rsa.pub
#cp ~/.ssh/id_rsa.pub ~/dev/id_rsa.pub COPY id_rsa.pub /root/.ssh/authorized_keys # 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"]
ssh连接docker镜像ubuntu与debian的更多相关文章
- ssh连接docker容器
有两种方法: 1.通过宿主机的端口映射访问docker 在宿主机上启动容器,分配端口,启用ssh服务: docker run -p 10022:22 -d sshd:ubuntu /usr/sbin/ ...
- windows 使用ssh连接docker容器
在Windows上搭建docker服务器需要在Windows模拟一个Linux平台,然后在Linux平台上搭建的docker服务器,所以在使用ssh工具连接docker容器的时候,使用的ip地址不是d ...
- Docker制作能够ssh连接的镜像
本类文章只作为记录使用 命令操作: #拉取Centos 7 docker pull centos:7 #运行一个镜像 docker run -tdi --privileged centos:7 ini ...
- 不能ssh连接ubuntu linux 服务器 secureCRT不能ssh连接服务器 不能远程ssh连接虚拟机的ubuntu linux
我是用的是secureCRT,远程连接我的虚拟机里面的ubuntu 直接报错,连接不上 1,先分别在windows上ipconfig和ubuntu上ifconfig下 互ping一下,是可以ping通 ...
- 【ssh连接docker container问题】
在向docker container执行ssh或scp的时候,应该将docker container的22端口映射出来,然后ssh/scp命令指定映射出来的端口
- docker镜像ubuntu封装jdk1.8.0【dockerfile】
github地址:https://github.com/laileman/Docker/Dockerfile/ubuntu-jdk1.8.0_172 1-目录结构 2- dockerfile内容 3- ...
- ssh 连接ubuntu的虚拟机问题
我在winxp的虚拟机上装了一个ubuntu9.04的系统,winxp的ip为10.118.62.157,ubuntu的ip为192.168.116.1 两个ip互相ping都是正常的,但是,我在wi ...
- window用ssh连接本机虚拟机中的ubuntu
@window用ssh连接本机虚拟机中的ubuntu 主机和虚拟机间通信,需将2台机器的IP地址设为同一网段. 1.设置虚拟机: 虚拟机–> 设置–> Hardware –> Net ...
- 【玩转开源】制作Docker镜像
做嵌入式方向经常会遇到的一个问题,就是编译环境安装,如果换电脑,再重新安装环境是一个比较费时的事情,这个时候可以自己制作一个Docker镜像,然后把编译环境在Docker镜像里面配置好,以后同步环境就 ...
随机推荐
- 在html中引入css、js和jQuery的方法
在html中引入css代码 在html中插入CSS样式表的方法有三种: 1.外部样式表(External style sheet):即所有的样式单独写在一个.css文件中,在html文件的head部分 ...
- android 颜色值参考,(有颜色图
) 2011-10-13 19:55:30| 分类: android | 标签:android颜色值|字号大中小 订阅 Android 常用RGB值以及中英文名称 颜 色 RGB值 英文名 中文名 ...
- $ORACLE_HOME/rdbms/demo示例安装
需要手工安装p13390677_112040_Linux-x86-64_6of7.zip,或者win32_11gR2_examples.zip.默认不包含. 从Oracle Database 12c ...
- Improving your submission -- Kaggle Competitions
1: Improving Our Features In the last mission, we made our first submission to Titanic: Machine Lear ...
- Ubuntu 安装 VS code
sudo snap install --classic vscode 没有snap就先装snap,是的,就是这么简单.
- VSCode 预览 .md 文件
VSCode安装md插件 选择Extensions, 输入Markdown Theme Kit,下面会出现相应插件,点击install(截图中因为我已经安装,所以是设置) 或者安装插件Markdown ...
- NOIP 2016 天天爱跑步 (luogu 1600 & uoj 261) - 线段树
题目传送门 传送点I 传送点II 题目大意 (此题目不需要大意,我认为它已经很简洁了) 显然线段树合并(我也不知道哪来这么多显然) 考虑将每条路径拆成两条路径 s -> lca 和 t -> ...
- centos7 install fastdfs nginx
https://github.com/judasn/Linux-Tutorial/blob/master/markdown-file/FastDFS-Nginx-Lua-GraphicsMagick. ...
- 一道cf水题再加两道紫薯题的感悟
. 遇到一个很大的数除以另一个数时,可以尝试把这个很大的数进行,素数因子分解. . 遇到多个数的乘积与另一个数的除法时,求是否能整除,可以先求每一个数与分母的最大公约数,最后若分母数字为1,则证明可整 ...
- LightOJ 1027 A Dangerous Maze(期望)题解
题意:n扇门,每扇门后都有一个值x,如果x<0会让你等待-x再重新回到这里选择门,x>0你经过x时间就会被传送走,问你被传送走的期望 思路:假设被传送走的期望为E,那么对于x<0来说 ...