在服务器使用podman创建/新建容器,进入容器中,成功安装 openssh-server 和 openssh-sftp-server,然后执行以下命令并查看状态:

# service ssh status
 * sshd is not running
# service ssh start
 * Starting OpenBSD Secure Shell server sshd
# service ssh status
 * sshd is not running  //实际并没有启动,其它PC也不能通过SSH连接容器

经过长时间排查,发现是创建容器时使用了命令选项"--network=host",如下所示:

podman run -d --network=host --privileged=true --name ContainerName ...

通过查阅资料了解到host模式直接使用宿主机的网络空间,该模式下无法使用-p命令选项映射端口,容器和宿主机直接共享端口(多次尝试让其它PC通过SSH连接服务器容器均未成功,实际是否可以未知,读者可使用podman ps命令查看端口映射关系)。因此需将创建容器的命令修改为:

podman run -d -p 1234:22 --privileged=true --name ContainerName ...
# 1234 是指定的宿主机端口(无超级管理员权限时端口号不得小于1024)
# 22 是指定的容器中端口(对应/etc/ssh/sshd_config文件中配置的Port变量)

然后进入容器中,再次执行以下命令并查看状态:

# service ssh status
 * sshd is not running
# service ssh start
 * Starting OpenBSD Secure Shell server sshd
# service ssh status
 * sshd is running  //正常

实测其它PC已可以通过 ssh -X -p 1234 username@server-ip 连接服务器运行中的容器。

Tips:

(1) 如果需求差不多的话可以共用一个容器,在容器中使用root账户进行管理(或者创建一个具有sudo权限的管理账户),然后创建多个低权限账户提供给相关用户使用。使用以下命令可查看支持的数量上限:

sysctl -a | grep user\.max_user_namespaces

(2) 如果需求不一致,可创建多个容器,每个容器映射不同的端口。这样用户就可以用不同的映射端口来访问不同的容器。

郑重提示:①本文不允许转载,若认可本文,可点赞收藏。

②若有疑问,可在评论区留言相互讨论。

容器中启动ssh状态总是sshd is not running相关推荐

  1. docker容器内开启22 ssh_细述docker容器中创建SSH服务镜像

    基于commit 命令 方式创建 docker的安装 [root@test01 ~]# yum install docker [root@test01 ~]# systemctl enable doc ...

  2. docker运行yyets_如何让操作系统为ubuntu的docker容器在启动时自动重启sshd服务?

    实现你的需求有很多种做法. 1.如果在容器没有启动 sshd 服务的情况下又想通过一条ssh命令就进入容器内部,可以将 docker exec 与 ssh 两条指令结合到一起去: ssh -t 云主机 ...

  3. Docker容器中启动Arthas异常

    使用Docker容器部署spring boot项目 Dockerfile文件内容如下 FROM openjdk:8-jre-alpine#第一步将apk源替换为国内阿里源.没有第一步将下载难产 RUN ...

  4. linux中ssh启动报错,Linux(Ubuntu18)中启动ssh时的报错

    今天配置了一台新的Ubuntu的机器,在修改完ssh的配置文件并准备开启ssh的时候,无论是启动ssh: /etc/init/d/ssh start 还是重启ssh服务: /etc/init/d/ss ...

  5. docker容器内开启22 ssh_在docker容器中开启ssh服务 (未成功有时间再验证)

    一. 利用ubuntu:14.04镜像创建一个容器: [root@docker ~]# docker run -it ubuntu:14.04 /bin/bash root@161f67ccad50: ...

  6. Docker容器中GUI软件的远程图形界面交互:mobaXterm+SSH,以脑影像处理软件FSL为例;FSL6.0.3完整安装与可视化;docker容器图形化;远程登录docker容器;

    前言   对docker容器中软件的操作,是基于命令行的,这就导致了习惯图形化界面的人比较难以使用docker,而它又是一个神器,所以很难受.一般情况下,可以给容器安装一个桌面环境,然后用类似VNC的 ...

  7. linux下的ssh端口号修改,如何在 Linux 中更改 SSH 端口

    默认情况下, SSH 侦听端口 22 . 更改默认 SSH 端口可以降低被自动攻击的风险,从而为服务器增加额外的安全层. 和更改默认端口相比,将防火墙配置为仅允许从特定主机访问端口 22 则更加简单和 ...

  8. Docker容器中的Linux机器快速设置国内源

    Docker容器中的Linux机器快速设置国内源 在Docker容器中启动了服务后,当我们进入容器内,经常很多命令无法使用,比如最基本的vim,可能都没有安装,因为容器内只安装应用服务,导致无法编辑配 ...

  9. 构建ChatGPT 镜像,并将其部署到 Docker 容器中。

    自己构建 ChatGPT 镜像,并将其部署到 Docker 容器中. 下面是一个简单的 ChatGPT 镜像构建示例: 准备工作 在开始构建 ChatGPT 镜像之前,我们需要完成以下准备工作: 安装 ...

最新文章

  1. 基于物理的渲染-用真实的环境光照亮物体
  2. GoogLeNet的心路历程(三)
  3. Python读取csv数据文件,并按照指定比例划分为机器学习使用的训练集和测试集
  4. python源码剖析, 第0部分 -- 编译python
  5. 算法之寻找完数(C语言)
  6. timestamp显示毫秒_TimeStamp 毫秒和纳秒
  7. C#实现Winform程序自动进行版本升级更新
  8. 调节效应分析时简单斜率图或交互效应图出现负数截距?
  9. linux该专接本还是工作_专升本还是继续工作?
  10. 深度学习跑项目的注意事项
  11. 试图运行项目时出错:未能加载文件或程序集 或它的某一个依赖项。该模块应包含一个程序集清单 .
  12. 发那科pmc地址分配_FANUC IO模块地址分配详解
  13. python opencv根据颜色进行目标检测
  14. PHP免费发短信飞信类实现
  15. 十年架构师带来的Spring源码解析,极度深寒,程序员修炼内功必备
  16. iso转cue mac_mac如何播放cue文件?
  17. IPv6 地址数量有多少,能够分配到地球上的每一粒尘埃吗
  18. 从寻找谷神星的过程,谈最小二乘法实现多项式拟合
  19. 陈关荣老师整理的复杂网络的…
  20. xshell xftp 5系列

热门文章

  1. Python爬虫——下载音乐
  2. 熟练运用计算机软件英语,计算机软件英语论文
  3. 中科院计算机所副研究员,中科院计算技术研究所副研究员 谭光明
  4. 导致项目进度延误的三种常见场景及解决方案
  5. 如何把拍摄视频中多余的人或物去除?
  6. 欢迎使通过网页免费下载全网歌曲【转载】
  7. MarkDown语法详解(Typora编辑器)
  8. 宋鸿兵在《货币战争5》中谈到的美国医疗
  9. 搭建MYSQL的mmm架构出现 master/AWAITING_RECOVERY. Roles报错
  10. 小程序源码:网课查题微信小程序源码下载,题库资源丰富自动采集,支持语音拍照识别