docker学习小实战(四)基于commit命令创建为镜像添加SSH服务(远程连忘记密码了QAQ)

本文详细介绍了如何在Docker容器中使用Ubuntu 14.04镜像搭建SSH服务的过程,包括创建容器、安装SSH服务、配置SSH服务、设置公钥验证及端口映射等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我这里使用的ubantu14.04为的镜像
创建容器并跑

docker run -it ubuntu:14.04 /bin/bash

更新apt缓存,并安装openssh-server:

root@fc1936ea8ceb:/# apt-get update; apt-get install openssh-server -y

选择主流的openssh-server作为服务端:

root@fc1936ea8ceb:/# apt-get install openssh-server –y

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

root@fc1936ea8ceb:/# mkdir -p /var/run/sshd
root@fc1936ea8ceb:/# /usr/sbin/sshd -D & [1] 3254

这时我们来查看一下,可见此端口已经处于监听状态:

root@。。。。:/# netstat -tunlp

修改SSH服务的安全登录配置,取消pam登录限制:
ps.pam是一种登录限制方式(这里还是不太理解pam的作用)

root@。。。。:/# 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命令生成,一般为本地主机用户目录下的.ssh/id_rsa.pub文件,可由ssh-keygen -t rsa命令生成,
在远端客户端机器(即,非容器机器)执行命令 ssh-keygen -t rsa 生成rsa的公私密钥对,然后把公钥的信息拷贝到运行ubuntu容器机器的授权文件中:)到authorized_keys文件中:
本地机输入
ssh-keygen -t rsa
公匙
在这里插入图片描述
创建目录

root@。。。:/# mkdir root/.ssh

打开,并复制公匙

root@。。。:/# vi /root/.ssh/authorized_keys

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

root@。。。:/# vi /run.sh

为这个脚本添加如下内容

#!/bin/bash
/usr/sbin/sshd -D

退出容器

root@fc1936ea8ceb:/# exit

将所退出的容器用docker commit命令保存为一个新的sshd:ubuntu镜
像:
在这里插入图片描述

# docker commit bef sshd:ubuntu

查看一下,存在在这里插入图片描述
启动容器,并添加端口映射10022–>22。其中10022是宿主主机的端
口,22是容器的SSH服务监听端口:

# docker run -p 10022:22 -d sshd:ubuntu /run.sh

在这里插入图片描述
报错,经过检查阿里云10022端口没有打开。打开即可。

打开完成。在宿主主机或其他主机上上,就可以通过SSH访问
10022端口来登录容器:

# ssh 192.168.1.200 -p 10022

在这里插入图片描述
密码忘了,哦豁,洗白。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值