docker基于centos的ssh镜像的配置

docker基于centos的ssh镜像

docker rm -f $(docker ps -aq)删除所有容器
1:拉取centos镜像 docker pull centos
2:创建容器docker run -itd –name test docker.io/centos /usr/sbin/init
3:进入容器docker exec -ti test /bin/bash
4:yum -y update
5:yum install -y openssh-server
6:修改config文件
cd /etc/ssh vi sshd_config

    Port 22
    ListenAddress 0.0.0.0
    ListenAddress ::
    PermitRootLogin yes
    开放这四个选项

7:在宿主机生成密钥
ssh-keygen -t rsa
cat /root/.ssh/id_rsa.pub
将生成的密钥copy到容器中的authorized_keys文件中
mkdir /root/.ssh
vi authorized_keys
8:pam问题

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

9:设置启动脚本
vi run.sh

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

授权chmod +x run.sh
启动sh run.sh
这里遇到问题,在容器内启动有时会不好使
这时我们启用systemctl start sshd.service来启动服务
ps -ef|grep sshd来观察服务是否启动成功
exit退出容器
10:docker commit test testssh 将容器提交成镜像
11:

    docker run -itd -p 10000:22 testssh:latest /run.sh
    docker run -itd -p 10001:22 testssh:latest /usr/sbin/init
    docker run -itd -p 10002:22 testssh:latest /bin/bash
    这三条命令在你生成镜像服务为开启状态时都是可用的
    但如果你的生成的镜像服务没有走第9步中的启动命令就提交了镜像
    那么你只能使用后两条命令来达到启动sshd服务的效果。

12:ssh 192.168.66.136 -p 10001
过程中可能遇到的错误
a)主机公钥不符,认证失败
这里写图片描述
如图,当你出现这种情况
可能性1:你的主机识别的从机信息不符
请执行以下命令

cd /root/.ssh
vi known_hosts

删除你对应的子机ip的 ssh-rsa 即可。
可能性2:ssh目录或者 .ssh/known_hosts 对当前用户的权限设置不正确。这种情况比较少,一般正确设置读写权限以后也能恢复正常。
可能性3: /dev/tty 对 other 用户没有放开读写权限。这种情况极为罕见。出现的现象是,只有 root 用户能够使用 ssh client,而所有其他的普通用户都会出现错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值