添加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)

大家都在看

  • 继上篇-jquery ajax提交 本篇用ajax提交的数据去数据库查询

    上篇讲到如何用jquery ajax提交数据至后台,后台接收并返回给ajax。https://www.cnblogs.com/tiezhuxiong/p/11943328.html…

    Linux 2023年6月13日
    0108
  • 面试题汇总

    JAVA 基础 1.java 性能优化 ①尽量指定类、方法的final 修饰符 ②尽量重用对象 ③尽可能使用局部变量 ④及时关闭流 ⑤尽量减少对变量的重复计算 ⑥尽量采用懒加载的策…

    Linux 2023年6月7日
    094
  • [Git系列] 前言

    Git 简介 Git 是一个重视速度的分布式版本控制和代码管理系统,最初是由 Linus Torvalds 为开发 Linux 内核而设计并开发的,是一款遵循二代 GUN 协议的免…

    Linux 2023年6月14日
    0112
  • Linux中CentOS 7的安装及Linux常用命令

    前言 什么是Linux Linux是一套免费使用和自由传播的操作系统。说到操作系统,大家比较熟知的应该就是Windows和MacOS操作系统,我们今天所学习的Linux也是一款操作…

    Linux 2023年6月6日
    0143
  • JS 模块化- 04 CMD 规范与 Sea JS

    1 CMD 规范介绍 CMD: Common Module Definition, 通用模块定义。与 AMD 规范类似,也是用于浏览器端,异步加载模块,一个文件就是一个模块,当模块…

    Linux 2023年6月6日
    0115
  • 模型层

    准备阶段 django自带的sqlite3数据库,功能很少,并且针对日期类型不精确 准备步骤 数据库正向迁移命令(将类操作映射到表中) python3 manage.py make…

    Linux 2023年6月7日
    095
  • 用动态端口,增强winrm,open sshd的,服务器安全

    前言 我开发了一套开源,免费,跨平台的devops脚本批量运维工具。【kaiiit家的饭店】是软件的正式名字。【卡死你3000】是第一版开发代号。 想要增强win被控机密码安全。可…

    Linux 2023年6月14日
    085
  • 每周一个linux命令(netstat)

    基础环境 netstat 命令介绍 打印网络连接、路由表、接口统计信息、伪装连接和多播成员,使用最多的是打印网络连接信息。 netstat 命令安装 yum install net…

    Linux 2023年6月8日
    098
  • Xshell中文乱码问题

    先查看当前使用的语言: echo $LANG 查看系统的语言安装包: locale 如果没有中文安装包(包含zh_CN字样),需要网络或者自己上传安装包,安装 有了中文语言安装包后…

    Linux 2023年5月28日
    0100
  • [转帖]shell 学习之正则、别名以及管道重定向

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

    Linux 2023年5月28日
    0100
  • ASP已老,尚能饭否?

    我对ASP的感情,跟大海一样深。我用它实现了第一个动态网页,也用它做了毕业设计,毕业设计的名字是《毕业设计管理系统》(是不是有点绕)。在 PHP 和 ASP.NET、Java 高歌…

    Linux 2023年6月6日
    0113
  • mysql通过mysqldump命令重做从库详细操作步骤

    备份主库所有数据,并将dump.sql文件拷贝到从库/tmp目录 mysqldump -uroot -p –set-gtid-purged=OFF –single-transa…

    Linux 2023年6月8日
    078
  • 视图层

    目录 虚拟环境 django路由层版本区别 视图函数返回值 JsonResponse对象 上传文件 request方法 FBV与CBV CBV源剖析 模板语法传值 内容 虚拟环境 …

    Linux 2023年6月7日
    078
  • 五、用户管理

    id root查看用户uiduid 0管理员uid 1-999系统账号uid 1000-60000普通账号gid 0 管理组gid 1-999 系统组gid 1000-60000 …

    Linux 2023年6月7日
    082
  • 学习一下 SpringCloud (五)– 配置中心 Config、消息总线 Bus、链路追踪 Sleuth、配置中心 Nacos

    (1) 相关博文地址: 学习一下 SpringCloud (一)– 从单体架构到微服务架构、代码拆分(maven 聚合): https://www.cnblogs.com/l-y…

    Linux 2023年6月14日
    0124
  • HTML基础笔记整理

    「学习笔记」HTML基础 勤做笔记不仅可以让自己学的扎实,更重要的是可以让自己少走弯路。有人说:”再次翻开笔记是什么感觉”,我的回答是:”初恋般…

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