• ubuntu 配置ssh(docker)


    一、docker配置ssh

    1、主要设置

    #设置登录密码
    apt-get install passwd
    passwd
    #安装ssh
    apt-get install openssh-server
    #配置 shh:生成 ssh 容器的公钥、私钥
    #注意:生成过程中需要两次回车,以进行下一步。
    cd /etc/ssh
    ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
    ssh-keygen -t rsa -f /etc/ssh/ssh_host_ecdsa_key
    ssh-keygen -t rsa -f /etc/ssh/ssh_host_ed25519_key
    #创建允许外部访问的认知文件
    mkdir -p ~/.ssh
    > ~/.ssh/authorized_keys
    #编写容器的服务启动脚步
    vim /run.sh
    #写入以下内容退出:下面内容不对,无法执行,看三(注意事项)
    #!/bin/bash
    /usr/sbin/sshd -D
    #设置执行权限
    chmod +x /run.sh
    #退出
    exit

    2、启动容器

    如果不能启动,去掉/run.sh,改成/bin/bash,然后手动执行/run.sh中内容

    docker ps -a
    docker commmit 容器id 新镜像
    docker images
    #-p 2222:22 将容器的22端口服务映射到宿主机的 2222 端口上
    docker run -d --name 容器名称 ... -p 2222:22 镜像名称 /run.sh  

    3、本地ssh连接容器

    ssh root@127.0.0.1 -p 2222

    4、注意事项

    1)将容器commit保存为镜像,然后再次启动时,执行/run.sh会失败。进入容器后,手动执行run.sh中内容,又会报错,解决方法如下

    #报错如下
    root@3f912011817b:/usr/sbin# /usr/sbin/sshd 
    Missing privilege separation directory: /run/sshd
    #解决方法如下
    mkdir /run/sshd
    /usr/sbin/sshd 
    ps -e | grep ssh
    #显示内容如下
      4137 ?        00:00:00 sshd

    2)如果root连接容器,需要修改: vim /etc/ssh/sshd_config

     

  • 相关阅读:
    C#中将全部代码一次性折叠
    C#中图片单击旋转事件
    块参照重命名
    补强圈设计
    c# winform 按名称取得控件
    获得某控件的父控件(容器)中的所有控件
    回车键当Tab键使用
    替换CAD中原有命令为开发人员自己开发的命令的方法
    窗体设置
    判断控件的tag是否为空的方法
  • 原文地址:https://www.cnblogs.com/wllwqdeai/p/15998268.html
Copyright © 2020-2023  润新知