首页 > 其他分享 >Docker创建无密码ssh容器

Docker创建无密码ssh容器

时间:2023-06-09 17:23:43浏览次数:38  
标签:容器 sshd 0.0 s6 ssh && Docker yes

需求

希望创建一个container进行调试,使用ssh登陆无需密码。

实现

Dockerfile如下

FROM ubuntu:20.04
RUN passwd -d root && apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -yq \
    s6 ssh && mkdir /run/sshd && mkdir -p /etc/s6/sshd && \
    sed -i -e 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' \
    -e 's/#PermitEmptyPasswords no/PermitEmptyPasswords yes/' \
    -e 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config && \
    echo '#!/bin/sh\nexec /usr/sbin/sshd -D' > /etc/s6/sshd/run && \
    chmod +x /etc/s6/sshd/run
ENTRYPOINT ["/bin/s6-svscan", "/etc/s6/"]

修改sshd_config使得空密码成为可能,最后使用s6对sshd进行守护。

验证

$ docker build -t ubuntu:20.04_ssh .
$ docker run -d --name ssh ubuntu:20.04_ssh
$ docker exec -it ssh bash
root@56bb78228436:/# ssh 0
The authenticity of host '0.0.0.0 (0.0.0.0)' can't be established.
ECDSA key fingerprint is SHA256:S0VuGHBwJVA5lLmTimCv0YtYPAv/YlqtKS+XjzCh1wk.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '0.0.0.0' (ECDSA) to the list of known hosts.
root@56bb78228436:~#

可以看到无密码登陆root成功。

参考

SSH login without password and without keys - Unix & Linux Stack Exchange
docker - Editing Files from dockerfile - Stack Overflow

标签:容器,sshd,0.0,s6,ssh,&&,Docker,yes
From: https://www.cnblogs.com/azureology/p/17469767.html

相关文章

  • 特定情况下docker run --restart=always重启失效的情况
    这是原cicd中使用的语句 在服务器reboot之后,可以看到服务没有随之重启。 通过dockerps-a--no-trunc可以看到--restart=always被当成arg放在了作为entry-point的脚本后面作为传参 这里做了一个猜想,将--restart=always置于dockerrun正后方,而非镜像名后,修改如下:......
  • 使用ssh-keygen命令生成公私钥对
    使用`ssh-keygen`命令生成公私钥对的示例命令如下:ssh-keygen-trsa-b2048-C"[email protected]"这个命令将生成一个2048位的RSA公私钥对,并将公钥关联到指定的电子邮件地址。生成的私钥将保存在`~/.ssh/id_rsa`文件中,公钥将保存在`~/.ssh/id_rsa.pub`文件中。在命令......
  • docker命令
    Docker#常用命令(1)查看运行情况dockerps-a(2)日志查看dockerlogs-fIMAGE(3)进入容器dockerexec-itIMAGEsh(4)删除容器dockerrm-fIMAGE(5)退出容器exit(6)下载镜像dockerpullname:tag(7)查看本地已下载的镜像do......
  • java8如何校验ssh-keygen生成的公私钥
    如果你的公私钥文件不是PEM格式的,而是其他格式,如OpenSSH格式(通常以`id_rsa`和`id_rsa.pub`命名),你可以使用Java的`JSch`库来验证它们的有效性。下面是一个示例代码,演示如何使用`JSch`库验证OpenSSH格式的公私钥对:首先,你需要在项目中引入JSch库的依赖。你可以使用Maven或手动下载并......
  • 15MnNiDR力学性能、15MnNiDR执行标准、15MnNiDR容器板
    一、15MnNiDR钢板简介:15MnNiDR是属于低温压力容器钢板,钢板由氧气转炉或电炉冶炼,并采用炉外精炼工艺,连铸怌、钢锭成材的压缩比不小于3,电渣重熔坯压缩比不小于2。执行标准:GB3531。二、15MnNiDR钢板化学成分:CSiMnPSNiCrMoCuVAls≤0.180.15~0.51.2~1.6≤0.025≤0.0150.2~0.6≤0.25≤0.......
  • 使用CNI网络插件(calico)实现docker容器跨主机互联
    目录一.系统环境二.前言三.CNI网络插件简介四.常见的几种CNI网络插件对比五.Calico网络之间是如何通信的六.配置calico让物理机A上的docker容器c1可以访问物理机B上的docker容器c26.1安装部署etcd集群6.2安装部署docker6.3配置calico6.4使用Calico实现Docker容器跨主机互联七.......
  • 1、Docker介绍、组成、安装、运行容器的核心技术
    Dockerdocker的介绍和基础操作docker单机容器dockercompose单机多个容器k8s多机多个容器container即容器,集装箱docker就是搬运集装的码头工人,管理容器的管理工具Docker的组成Docker主机(Host):一个物理机或虚拟机,用于运行Docker服务进程和容器,也称为宿主机,node节点D......
  • 2、Docker二进制安装脚本
    #!/bin/bashDOCKER_VERSION=20.10.19#URL=https://mirrors.aliyun.comURL=https://download.docker.comprepare(){if[!-edocker-${DOCKER_VERSION}.tgz];then#wget${URL}/docker-ce/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz......
  • 3、Docker镜像管理(下载、删除、打标签、导出导入)
    镜像管理docker镜像是由一层一层的文件系统累积起来的容器的组成最下面:bootfs,引导文件系统,在镜像中不存在,用的是宿主机的内核然后是:rootfs,根文件系统,如centos/ubuntu接着:镜像(jdk)接着:镜像(tomcat)最后:可写容器(container)除了可写层,其他都是只读的。这种情况可以复用,如根文件......
  • 1、Docker二进制安装脚本
    #!/bin/bashDOCKER_VERSION=20.10.19#URL=https://mirrors.aliyun.comURL=https://download.docker.comprepare(){if[!-edocker-${DOCKER_VERSION}.tgz];then#wget${URL}/docker-ce/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz......