制作不需要密码就可以互相ssh的docker镜像

ssh进入某一个机器的时候,要么提供那台机器的密码,要么采用别的安全协议,比如说rsa协议,我们就是通过rsa协议实现了不输入密码就可以直接登录别的主机。这样做主要是为了,我们在利用mpi进行计算的时候,不能通过输入密码的方式进行访问,所以,有这个需求。而rsa的工作原理是什么样子的呢?简单说来,如果a想ssh到b上去,那么a就要把自己的rsa.pub发送给b,然后,b如果接受a以后可以无密码访问我,就把这个pub key加入到authorized_keys里面去,这样以后,在a想ssh到b的时候,a会把这个信息进行加密,通过a自身的private key,而a的这个加密信息只有a的pub key才能解开,这样,b在接收到这个信息的时候,因为b拥有a的pub key,所以就可以解开,同样地,b也就知道,这真是a发来的信息,因为别的人不知道a的private key,这样b就可以直接允许a ssh进来了。在docker环境中,我们比较方便的地方,是可以直接制作一个镜像。我们的想法是,用一个基础镜像构建一个container,然后在这个container里面生成rsa密钥,然后,把自己的pub key直接拷到authorized_keys里面去,然后把这个container做成一个镜像,这样的话,只要从这个镜像起来的container,都可以互相无密码访问。
首先,要用docker启用一个containersudo docker run -ti ubuntu /bin/bash
既然要使用ssh,那么我们肯定要安装ssh。
sudo apt-get install openssh-server
然后,生成密钥,并且付给authorized_keys
sshkey-gen -t rsa
一直按回车,不要停。
cp /root/.ssh/id_dsa.pub /root/.ssh/authorized_keys
修改一些配置信息,修改/etc/ssh/ssh_configure文件里面的StrictHostKeyChecking ask为 no,这个配置信息是在ssh主机的时候,询问加入fingerprint的那个东西。
然后推出container,使用docker ps -l查看刚刚退出的container的id,然后用这个container commit一个镜像。
sudo docker commit container_id image_name

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值