内容简介:默认 Docker 创建的容器只能使用然后可以使用静默创建自定义 ssh key :
默认 Docker 创建的容器只能使用 docker exec -it name /bin/sh
登录,即使做了端口映射也不能使用 ssh name@ip
登录,是由于:
- 目标容器内未对外提供 sshd 服务
- 没有登录密码
- 没有授权的公钥 key
使用 dockerxman/docker-ubuntu-ssh 镜像创建 ubuntu 容器
docker run -it -p 0.0.0.0:2222:22 dockerxman/docker-ubuntu-ssh:latest /bin/bash
然后可以使用 ssh -p 2222 root@127.0.0.1
登录。
dockerxman/docker-ubuntu-ssh 主要做的事
- 设置了 sources.list 为阿里云镜像,使其安装依赖、更新更快
-
需要安装对应的 sshd 服务,如:
openssh-server
-
创建一个根据启动容器时的变量
AUTHORIZED_KEYS
来设置容器的/root/.ssh/authorized_keys
的脚本/run.sh
-
创建一个根据启动容器时的变量
ROOT_PASS
来设置容器的 root 密码的脚本/set_root_pw.sh
使用自定义密钥来配对 ssh
静默创建自定义 ssh key :
ssh-keygen -t rsa -N '' -f ssh-to-path/id_rsa
启动时透传公钥:
docker run -it -p 0.0.0.0:2222:22 -e AUTHORIZED_KEYS="`cat ssh-to-path/id_rsa.pub`" dockerxman/docker-ubuntu-ssh:latest
执行 ssh 登录时使用自定义密钥:
ssh -i ssh-to-path/id_rsa -p 2222 root@127.0.0.1
容器间互相登录
需要使用宿主的映射端口登录,如:
docker run -it --name a1 -p 0.0.0.0:2221:22 dockerxman/docker-ubuntu-ssh:latest /bin/bash docker run -it --name a2 -p 0.0.0.0:2222:22 dockerxman/docker-ubuntu-ssh:latest /bin/bash
在 a1 里使用 ssh -p 2222 root@宿主IP
即可登录,如果想免密码可以在启动容器时把 ssh-to-path/id_rsa
映射到容器的 /root/.ssh/id_rsa
中。
以上所述就是小编给大家介绍的《Docker 容器免密码 ssh 登录》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Mysql用户忘记密码及密码过期问题的处理方法
- 解决记不住密码的问题,“密码戒指”会是最佳方案吗?
- 密码学初学者可以理解的密码学库
- 用户密码加密存储十问十答,一文说透密码安全
- 密码学幼稚园 | 密码朋克的社会实验(二)
- 密码密钥傻傻分不清?认识密码学中的最高机密
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
即将到来的场景时代
罗伯特•斯考伯、谢尔•伊斯雷尔 / 赵乾坤 周宝曜 / 北京联合出版公司 / 2014-5-1 / 42
科技大神、全球科技创新领域最知名记者 罗伯特·斯考伯:“技术越了解你,就会为你提供越多好处!” 互联网的炒作点一个一个不停出现,大数据、3D打印、O2O等,无不宣扬要颠覆商业模式。但是,互联网进入移动时代,接下来到底会发生什么?移动互联网时代真正带来哪些改变?这具体会怎样影响我们每一个人的生活?商业真的会被颠覆?目前为止没有一本书给出答案。 《即将到来的场景时代》不是就一个炒作点大加谈......一起来看看 《即将到来的场景时代》 这本书的介绍吧!