Docker——为镜像添加SSH服务(有问题待解决)

一.基于commit命令创建

1.准备工作

 更新apt缓存

​​​​​​​

 安装apt-get install openssh-server -y

 

 

 2.安装和配置SSH服务

如果需要正常启动SSH服务,则目录/var/run/sshd必须存在,手动创建目录。

 mkdir -p /var/run/sshd

启动SSH服务

/usr/sbin/sshd -D &
 

查看容器的22端口(SSH服务默认监听端口)

apt install net-tools

netstat -luntp |grep 22
 

修改SSH服务的案件登录配置,取消pam登录限制(当你登录失败多次后就可以限制用户登录,从而起到保护电脑安全的作用)。

root@778e3d31ba3e:/# sed -ri 's/session required pam_loginuid.so /#session required pam_loginuid.so/g' /etc/pam.d/sshd

在root用户目录下创建.ssh目录,并复制需要登录的公钥信息(一般为本地主机用户目录文件下的.ssh/id_rsa.pub文件,可由ssh-keygen -t rsa命令生成)到authorized_keys文件中

box@box:~/.ssh$ su docker
密码: 
docker@box:/home/box/.ssh$ ssh-keygen -t rsa

 

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

 

退出容器

 

3.保存镜像

将所退出的容器用docker commit命令保存为一个新的sshd:ubuntu镜像

docker@box:~$ docker ps -a
docker@box:~$ docker commit 778e3d31ba3e ssh:ubuntu
docker@box:~$ docker images

4.使用镜像

启动容器并添加端口映射10022 -->22。其中10022是宿主机的端口,22是容器SSH服务监听端口

docker@box:~$ docker images
docker@box:~$ docker ps
docker@box:~$ docker run -p 10022:22 -d ssh:ubuntu /run.sh
docker@box:~$ ssh 192.168.31.117 -p 10022

存在问题:permission denied

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值