docker ubuntu镜像安装ssh免登录

1. 从dockerhub获取ubuntu14.04版本

docker pull ubuntu:14.04      

2. 启动ubuntu14.04镜像,得到一个运行的容器

docker run -vi ubuntu:14.04 /bin/bash

3. 更新ubuntu的源信息

apt-get update        
4. 获取openssh-server    vim软件

apt-get install openssh-server  vim    
5. 要正常启动SSH服务,需要目录/var/run/sshd存在,手动创建它,并启动服务 步骤6

mkdir -p /var/run/sshd      
6. 启动服务

/usr/sbin/sshd -D &
7. 查看ssh是否启动

netstat -tunlp
8. 修改SSH服务的安全登录配置,取消pam登录限制:

sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g'  /etc/pam.d/sshd

9. 设置公钥和私钥

1)在root用户目录下创建.ssh目录

mkdir /root/.ssh
2)复制需要登录的公钥信息(在宿主机里面用ssh-keygen -t rsa 直接enter回车默认在/root/.ssh/里面会生成id_rsa和id_rsa.pub)

3)把id_rsa.pub的内容copy到容器的authorized_keys文件里面来

10. 附加600权限 这个貌似很重要。

chmod 600 authorized_keys
11. 创建自动启动SSH服务的可执行文件run.sh,并添加可执行权限:

vim /run.sh
#!/bin/bash
/usr/sbin/sshd -D
12. 修改脚本权限

chmod 777 /run.sh
13. 修改容器/etc/ssh/sshd_config 中的UsePAM yes 改成no 要不然会导致登录成功立即退出

14. exit退出

15. 保存镜像

docker commit 容器ID ubuntu-ssh:latest 
16. 启动容器,映射宿主机的端口8888到容器的22端口

docker run -d -p 8888:22 ubuntu:latest /run.sh 
17. ssh登陆

ssh -v 127.0.0.1 -p 8888 #需要对宿主机里面的/root/.ssh/.id_rsa文件授权为600 如果授权太大了会提示权限too open了

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值