美文网首页
Dockerfile 配置 ssh 登陆 root 用户(免密

Dockerfile 配置 ssh 登陆 root 用户(免密

作者: fourn熊能 | 来源:发表于2022-11-02 11:23 被阅读0次

    设置用户的密码:

    echo "username:encryptedPassWd" | chpasswd -e
    

    但是这个密码不能是明文的,得是加密后的,有两个办法:

    1. 登陆到容器内部运行 passwd root,然后到 /etc/shadow 文件中查看设置成功的文本
    2. 通过命令 openssl passwd -6 -salt xyz yourpass 生成一个

    最后在 Dockerfile 文件中:

    RUN echo 'root:$y$j9T$2Ou6ckVGzuRvYZX9RyykO0$6hSs539X09Xdt4wSqKuD4hfcoU1NRT4vzmMm7EinKT4' | chpasswd -e
    

    下一步修改允许 root 用户通过 ssh 登陆:
    my_sshd.conf:

    PermitRootLogin yes
    

    Dockerfile:

    COPY etc/my_sshd.conf /etc/ssh/sshd_config.d
    

    此时可以进入容器中测试一下:

    ssh-keygen -t rsa
    ssh-copy-id hostname
    ssh hostname
    

    上面这一步也可以写到 dockerfile 中:

    COPY etc/my_ssh.conf /etc/ssh/ssh_config.d/
    COPY ssh/* /root/.ssh/
    

    总共分三步:

    1. 首先 ssh 这个目录下包含 3 个文件 id_rsa id_rsa.pub authorized_keys,其中公钥和私钥都是宿主机上生成的,相当于每个容器都使用同一组的密钥。
    2. authorized_keys 是用于保存连接者的公钥的,但由于大家都是一样的,所以把 id_rsa.pub 复制进去即可。
    3. my_ssh.conf 文件内就一句话StrictHostKeyChecking no,等于弃用 authorized_keys 安全机制,这样首次连接时就不会在命令行中询问。

    相关文章

      网友评论

          本文标题:Dockerfile 配置 ssh 登陆 root 用户(免密

          本文链接:https://www.haomeiwen.com/subject/pdljtdtx.html