添加SSH服务

1、基于commit命令创建

1.1 启动容器

[root@master ~]# docker run -it ubuntu:18.04 bash
#更新软件源
root@d8949a9bb837:/# apt-get update
root@d8949a9bb837:/# apt-get install -y vim

1.2 如果默认的官方源速度慢,可以替换为国内的镜像源,创建/etc/apt/source.list.d/163.list文件

root@d8949a9bb837:/# vim /etc/apt/sources.list.d/163.list
deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
#更新软件源信息
root@d8949a9bb837:/# apt-get update

1.3 安装和配置ssh服务

#使用openssh-server作为服务器
root@d8949a9bb837:/# apt-get -y install openssh-server
#启动SSH服务过程并不会创建/var/run/sshd目录,所以需要手动创建
root@d8949a9bb837:/# mkdir -p /var/run/sshd
root@d8949a9bb837:/# /usr/sbin/sshd -D &
#取消pam登录限制
root@d8949a9bb837:/# sed -ri 's/session    required     pam_loginuid.so/#session    required     pam_loginuid.so/g' /etc/pam.d/sshd
#创建SSH密钥对,并创建authorized_keys文件
root@d8949a9bb837:~# ssh-keygen -t rsa   #使用rsa加密算法,也可以使用dsa
Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.

Enter passphrase (empty for no passphrase):  #密码短语可以为空
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.   #私钥文件存储目录
Your public key has been saved in /root/.ssh/id_rsa.pub.  #公钥文件存储目录
The key fingerprint is:
SHA256:MmBjZuzJKPvdd3l80Kf5ABqqsaFPPTbMZSfLRNnnLBs root@d8949a9bb837
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|   .       o     |
|    O     o . .  |
|   O +   .   +   |
|. . + o S * E.o  |
| o     * * *.=. .|
|.     + O +o...+ |
| . . + *.oo o +. |
|  . o.=. . . . ..|
+----[SHA256]-----+'
#将公钥的数据存入authorized_keys文件,实现免密登录
root@d8949a9bb837:~# cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

1.4 创建自动启动SSH服务的可执行文件run.sh

root@7403bdb9a339:/# vi run.sh
#!/bin/bash
/usr/sbin/sshd -D
root@7403bdb9a339:/# chmod +x run.sh
root@7403bdb9a339:/# exit
#保存镜像
[root@master ~]# docker commit 7403bd sshd:ubuntu
#启动镜像
[root@master ~]# docker run -p 10022:22 -d sshd:ubuntu /run.sh
#连接SSH
[root@master ~]# ssh 192.168.130.16 -p 10022

dockerfile方式添加sshd服务:

[root@master ~]# mkdir sshd_ubuntu
[root@master ~]# cd sshd_ubuntu
[root@master ~]# vim run.sh
#!/bin/bash
/usr/sbin/sshd -D
[root@master ~]# ssh-keygen -t rsa
[root@master ~]# cat ~/.ssh/id_rsa.pub > authorized_keys

[root@master ~]# vim Dockerfile
FROM ubuntu:18.04
LABEL maintainer (user@docker.com)
RUN echo "deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse" >>/etc/apt/sources.list.d/163.list \
&& echo "deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse" >>/etc/apt/sources.list.d/163.list \
&& echo "deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/163.list \
&& echo "deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse" >>/etc/apt/sources.list.d/163.list \
&& echo "deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/163.list \
&& echo "deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse" >>/etc/apt/sources.list.d/163.list \
&& echo "deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse" >>/etc/apt/sources.list.d/163.list \
&& echo "deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/163.list \
&& echo "deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse" >>/etc/apt/sources.list.d/163.list \
&& echo "deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/163.list \
&& apt-get update && apt-get -y install openssh-server
RUN mkdir -p /var/run/sshd && mkdir /root/.ssh/
RUN sed -ri 's/session    required     pam_loginuid.so/#session    required     pam_loginuid.so/g' /etc/pam.d/sshd
ADD run.sh /run.sh
ADD authorized_keys /root/.ssh/authorized_keys
RUN chmod 755 /run.sh
EXPOSE 20
CMD ["/run.sh"]

[root@master ~]# docker build -t sshd:dockerfile .
[root@master ~]# docker run -d -p 10022:20 sshd:dockerfile
[root@master ~]# ssh 192.168.16.30 -p 10022

添加SSH服务

遇到的问题:

文件内容无法写入,一般有两种情况:1、权限不够,普通用户用vi 进行不了保存,也有可能是设置了特殊权限 2、有程序正在使用该文件

但是root怎么可能不够权限,基本可以排除1,出于2的考虑进入该目录才发现中间的目录名称输入错误…..

添加SSH服务

Original: https://www.cnblogs.com/nnijia/p/16023750.html
Author: 派大星和他的朋友
Title: 添加SSH服务

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607377/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • linux下中文输入法问题

    故事背景:最近在做资产上报相关功能,要支持中文输入,如果正常快捷方式启动程序没问题,但是升级或者卸载重新安装,自启的时候是使用su usr -C XX.sh启动,root下启动没办…

    Linux 2023年6月13日
    087
  • 数组常见操作

    8.19 day7 数组常见操作 获取数组最值 public static int maxElement(int[] arr) { // 假设第一个元素的值就是最大值 int ma…

    Linux 2023年6月7日
    091
  • [云原生]Kubernetes-Service详解(第7章)

    * – 一、Service介绍 – 二、Service类型 – 三、Service使用 + 3.1 实验环境准备 + 3.2 ClusterIP…

    Linux 2023年6月13日
    0112
  • 轻量级多级菜单控制框架程序(C语言)

    1、前言 作为嵌入式软件开发,可能经常会使用命令行或者显示屏等设备实现人机交互的功能,功能中通常情况都包含 UI 菜单设计;很多开发人员都会有自己的菜单框架模块,防止重复造轮子,网…

    Linux 2023年6月7日
    0120
  • 一劳永逸,解决.NET发布云服务器的时区问题

    国内大多数开发者使用的电脑,都是使用的北京时间,日常开发的过程中其实并没有什么不便;不过,等遇到了阿里云等云服务器,系统默认使用的时间大多为 UTC时间,这个时候,时区和时间的问题…

    Linux 2023年6月6日
    0101
  • 十二、启动流程

    启动流程介绍 现代计算机系统启动是硬件与软件复杂组合。从定义的端点开始,到拥有登录提示符的运行中系统,需要大量的硬件和软件配合工作。以下列表从较高层面概述了启动系统时所涉及的任务。…

    Linux 2023年6月7日
    0104
  • 6.18(反射和注解—>反射机制的作用)

    反射 获取Class对象三种方式第一种方式:类.class第二种方式:对象.getClass()第三种方式:Class.forName 在&#x4E0…

    Linux 2023年6月7日
    0125
  • CentOS7.6 单用户模式下修改root密码

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0104
  • Linux 逻辑卷&精简卷报错问题解决

    一、 故障 描述 现象1 :oraclelog 目录提示坏道信息,进行修复后执行删除文件操作,目录不可使用。 现象2 :lsblk 看到目录出现重复,并且有tmeta,tdata …

    Linux 2023年6月13日
    0109
  • spring boot实现不同生产环境下的文件配置

    spring boot项目开发时不同开发环境,打包生成不同的文件。(避免生产环境得到开发环境时的配置文件) 配置不同生产环境 本文适用于开发环境下需要打包项目至生产环境,避免开发环…

    Linux 2023年6月7日
    096
  • 【Redis】缓存穿透、缓存击穿、缓存雪崩产生原因及解决方案

    一. 本文对Redis中[缓存穿透]、[缓存击穿]、[缓存雪崩]三种现象产生原因、解决方法进行说明 二. 缓存穿透 1. 原因 2. 解决方法 三. 缓存击穿 1. 原因 2. 解…

    Linux 2023年5月28日
    0109
  • shell编程学习

    在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。 ! 告诉系…

    Linux 2023年5月28日
    0105
  • 【Docker搭建】2. 在Docker中安装Redis5.0

    1. 安装Docker,详细 请看安装教程 。若已安装,请看 2. 2. 拉取 Redis 镜像 docker pull redis:5.0.5 3. 设置 Redis 配置文件 …

    Linux 2023年6月13日
    091
  • 基于Docker的redis集群搭建

    Redis集群官方介绍:http://www.redis.cn/topics/cluster-tutorial.html 基于Docker搭建Redis集群 环境:6个节点,三主三…

    Linux 2023年5月28日
    084
  • RPA SAP财务内部对账机器人

    bash;gutter:true;【简介】本机器人用于使用SAP软件的集团公司间往来对账前台登录SAP账户和密码,需退出PC微信,输入法切换为英文半角状态。【详细流程】1、清空Ex…

    Linux 2023年6月7日
    0124
  • 私有镜像仓库harbor 登录报错 tcp: lookup harbor on 192.168.40.2:53: no such host

    当从docker harbor私服拉取镜像时,报如下错误 [root@node02 ~]# docker login 192.168.40.132Username: adminPa…

    Linux 2023年6月14日
    0107
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球