ubuntu22.04容器安装ssh服务

news/2025/3/17 17:31:07/文章来源:https://www.cnblogs.com/caojun97/p/18342123

除了特别说明外,否则以下命令均为ubuntu 22.04 容器内执行!!!

安装

查看ubuntu22.04 有没有安装openssh-server,执行命令:sudo dpkg --list | grep ssh

没有找到openssh-server的包,很显然,没有安装,那么就开始安装,执行:sudo apt install openssh-server

安装完成后,通过上图相关的包已经安装好了。这时,查看ssh服务的状态,执行:service ssh status 或者 ps -ef | grep sshd

注意:这里为什么用service命令,而不用systemctl命令呢? ubuntu 22.04容器没有这个权限

ssh服务有配置文件,需要进行修改一下:

修改/etc/ssh/sshd_config配置文件,仅修改其中两处即可,原来是被注释的,现在取消注释。

Port 22
ListenAddress 0.0.0.0

修改完配置文件,重新启动ssh服务,执行命令:service ssh restart。 此时,你使用宿主机通过ssh客户端去连接ubuntu 22.04 的ssh server,结果连不上,那就说明还有问题没有解决。ubuntu 22.04 容器是宿主机的一个进程,要与ubuntu 22.04容器通信需要宿主机映射端口给该容器。

特别注意:

1、参考文档来源# 配置远程连接容器内镜像(映射容器内系统的22端口到宿主机上)

2、由于创建容器时,没有对容器进行端口映射配置,所以需要将当前容器保存为镜像A,然后以镜像A创建新容器并配置端口映射。

# 特别说明:以下命令均在宿主机上执行# 停止指定的容器
docker stop $(container_id)# 通过指定的容器创建镜像
docker commit $(container_id) $(new_imager_name)# 查看本地镜像
docker images# 查看宿主机8112端口是否占用
netstat -ap | grep 8112# 通过指定的新镜像运行容器,并映射宿主机8112端口到ubuntu 22.04容器22端口
# 映射宿主机的当前运行docker命令的目录到ubuntu 22.04的/workspace目录
# 设置ubuntu 22.04 总是跟随宿主机启动
docker run -itd -p 127.0.0.1:8112:22 --restart=always -v $PWD:/workspace -u 1000 --security-opt seccomp=unconfined ${new_imager_id}

注意:这里映射的是127.0.0.1地址,所以只有宿主机能通过ssh连接上;如果需要其他主机也能通过ssh连接上,需要修改为0.0.0.0

宿主机的防火墙对的IP和Port有限制,所以宿主机需要在防火墙开放8112端口。

# 特别说明:以下命令均在宿主机上执行# 查看防火墙的状态
sudo ufw status# 启动防火墙
sudo ufw enable# 防火墙条件规则,放行8112端口
sudo ufw allow 8112# 重启防火墙
sudo ufw reload

连接

ssh服务配置好后,可以使用ssh客户端去连接,执行命令:ssh cj@localhost -p 8112 或者 ssh cj@127.0.0.1 -p 8112,接着按照提示输入密码。

注意:这里的用户cj是在ubuntu 22.04容器内已经创建好的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/777857.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.Java基础语法

注释单行注释 //单行注释 //输入一个Hello World!多行注释:可以注释一段文字 /* 注释 */ //多行注释:可以注释一段文字 /* 注释 */ /* 多行注释 多行注释 多行注释 */文档注释:JavaDoc /** * @Description HelloWorld * @Author 爱吃麻辣烫的妹纸 */⭐️注意:书写注释是…

分享圣诞树+雪人+全屏动效

分享圣诞树+雪人+全屏动效 创建时间:2024年8月4号 分享之前学习老师发的几个小玩意 一、圣诞树 运行: 点击该exe即可出来一棵圣诞树。退出: 鼠标点击该圣诞树右键二、雪人 运行: 双击点开exe即可退出: 和圣诞树一样、 三、音乐:满满都是爱 运行:双击打开,该程序对鼠标的…

java:一键生成二维码工具类

前言:本工具选择了Zxing,他是一个开源的,使用java实现多种格式的1D/2D条码图像处理库, 1.pom添加依赖<!-- 二维码生成&识别组件 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>…

Luogu P10842 Piggy and Trees 题解 [ 绿 ] [ 拆边 ] [ 贡献思维 ]

Piggy and Trees:把路径拆成边的思维题。 思路 一看到这题的路径,就想到了 Luogu P3177 树上染色 这题化路径为边的贡献,分别计算的思维。 那么对于此题,先来观察题目里式子的意思:对于树上的每个无序点对,求出树上每个点 到这些点对之间的最短路径的 距离之和。枚举点对…

ZeRO:一种去除冗余的数据并行方案

ZeRO:一种去除冗余的数据并行方案 目前训练超大规模语言模型主要有两条技术路线:TPU + XLA + TensorFlow/JAX GPU + Pytorch + Megatron + DeepSpeed 前者由Google主导,由于TPU和自家云平台GCP深度绑定,对于非Googler来说并不友好 后者背后则有NVIDIA、Meta、MS等大厂加持,…

【攻防技术系列+权限维持】注册表运行键

在红队行动期间在网络中获得初步立足点是一项耗时的任务。因此,持久化是红队行动成功的关键,因为这将使团队能够专注于交战目标,而不会失去与指挥和控制服务器的通信。 创建将在 Windows 登录期间执行任意负载的注册表项是红队剧本中最古老的隐藏技巧之一。这种持久性技术需…

链表part02

今天是8月3日,学习了链表的第二部分。交换链表两个节点,考察对next的操作和tmp的灵活运用。 删除链表的倒数第N个节点,双指针减少遍历次数。 链表相交,移动链表尾对齐,其实就是动长链表的指针。 环形链表,记住方法。4. 24交换链表两个节点 题目:给你一个链表,两两交换其…

Qt-pyqt6与QTDesginers的相互使用技巧

1. 先在QT Designers Tools 设计器中画好框架,再保存为.ui文件导出 2. 再pycharm中创建一个main.py文件用来加载和使用这个.ui文件,通用的代码如下: main.py from PyQt6.QtGui import QIntValidator, QIcon from PyQt6.QtWidgets import QApplication, QLabel, QListWidgetI…

Go中使用Zap日志库与Lumberjack日志切割

Go中使用Zap日志库与Lumberjack日志切割Go中使用Zap日志库与Lumberjack日志切割 原创 何泽丰 ProgrammerHe2024年06月11日 20:15 广东 听全文Go中使用Zap日志库与Lumberjack日志切割 概述 在项目中使用日志记录有助于快速定位和修复问题,能帮助我们监控系统健康状态及时发现问…

[UnrealCircle]腾讯 罗谦 | UnLua-UE4下的Lua脚本插件

传送门:[UnrealCircle]腾讯 罗谦 | UnLua-UE4下的Lua脚本插件_哔哩哔哩_bilibili参考PPT:UnrealCircle921北京PPT_免费高速下载|百度网盘-分享无限制一. UnLua 基础 1.1 概念UnLua 是一个脚本插件 UnLua 不是蓝图的替代,而是一种补充没有 Asset 预览 不支持 nativization 无…

Zigzag :nested loop 的教科书

Zigzag 在 PE array-memory hierarchy level 上对 nested-loop based 算子数据部署设计策略进行详细分析。文章作者来自鲁汶 MICAS [1]实验室。 软硬件建模 软件上只涉及 MAC-based 的网络算子(Linear、Convolutional),沿用 time-loop [2] 方法使用 nested-loop 建模,从 op…

6、Qt-pyqt6常用基本控件 - 选择列表类控件

选择列表类控件主要以列表形式为童虎提供选择的项目,用户可以从中选择项 此选项在QTDesigner的:Input Widgets下ComboBox FontComBoBox ListWidget🎣 1.ComboBox 下拉框 常用的方法:方法 说明addItem() 添加一个下拉表选项addItems() 从列表中给添加下拉选项currentText()…