适用于基于Docker的人工智能开发平台,或者容器内不能使用service、systemctl的情况(不能以docker run方式启动容器)

1.前言

# 能够docker run启动容器的建议加一个--privileged 这样就可以在容器内使用systemctl进行服务的启停操作
docker run -itd --privileged centos /usr/sbin/init
# 安装镜像的命令
docker pull centos:centos8

2.配置

2.1 基础包的安装

# 由于pull的centos是最小化的,因此需要安装一些必要的包
# centos8yum和dnf并存,dnf是yum的下一代包管理软件,因此下文的yum都可以用dnf试一试
yum install -y openssh-server
yum install -y openssh-clients # 安装了这个之后再命令行输入ssh就不会提示‘command not found’
yum install -y initscripts # 这个是能够在容器里面运行service命令
yum install -y net-tools.x86_64
yum install -y vim
yum install -y paawd

2.2 ssh的配置

vim /etc/ssh/sshd_config
# 确保
## PermitRootLogin yes

2.3 启动SSH服务

因为不能使用service启动服务,会报错:

Redirecting to /bin/systemctl start sshd.service
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

因此采用手动启动,方式如下:

mkdir -p /var/run/sshd
/usr/sbin/sshd -D &

若报错:

Unable to load host key: /etc/ssh/ssh_host_rsa_key
Unable to load host key: /etc/ssh/ssh_host_ecdsa_key
Unable to load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available -- exiting.

则输入:

ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
/usr/sbin/sshd -D & # 此时应该不会报错

再输入netstat -apn | grep ssh,则显示:

tcp       0      0 0.0.0.0:22   0.0.0.0:*   LISTEN      599/sshd
tcp6      0      0 :::22         :::*        LISTEN      599/sshd

再输入:passwd设置你想要的密码

这时就可以通过SSH进行连接这个容器(客户端(如windows)仍然需要安装SSH)

在客户端的terminal里输入ssh root@{容器的IP} -p {端口号},密码输入刚才设置的即可。

https://blog.csdn.net/qq_43827595/article/details/113810439

3 跨局域网远程连接docker的CentOS 8

前提(可有可无):下载tmux会话管理工具, yum install tmux或者dnf install tmux(仅限CentOS8)都可以,详细使用见下方参考链接。

https://www.ruanyifeng.com/blog/2019/10/tmux.html

简单使用:

# 新建会话
tmux new -s test
# 进入会话
tmux attach -t test
# 进入之后可以进行操作 按Ctrl+B,再按D退出
# 查看当前建立的会话(在正常的shell里面输入)
tmux ls
# 杀死会话
tmux kill-session -t test

3.1 方式1:ngrok

注册账号并下载所匹配的安装包(只有命令行的linux系统可以ssh远程的登录然后使用Xtfp7进行文件的传输,下载链接见Xftp7家庭和学校免费授权官方正版)

进入到ngrok压缩包所在目录:

unzip ngrok-stable-linux-amd64.zip
tmux new -s ngrok
tmux attach -t ngrok
# 进入到ngrok所在目录
# 链接你的ngrok账户(其中有个密钥)
./ngrok authtoken {密钥}
./ngrok tcp 22 # tcp可以用于SSH远程登录
# 成功之后会显示如下内容, Ctrl+B,D退出会话
ngrok by @inconshreveable
Session Status                online
Account                       {这里是账户名} (Plan: Free)
Version                       2.3.35
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    tcp://0.tcp.ngrok.io:{端口号} -> localhost:22
Connections                   ttl     opn     rt1     rt5     p50     p90                         0       0       0.00    0.00    0.00    0.00

之后就可以在另一台电脑使用ssh root@0.tcp.ngrok.io -p {端口号}连接了。

但是,ngrok是国外服务器,因此速度较慢,所以连接上能明显感受到延迟 此处推荐sakurafrp,可以选国内节点,速度快。

3.2 方式2:sakurafrp

sakurafrp官网

  1. 在浏览器上,打开官网>创建隧道>节点选国内的(需要实名认证 花1¥)>隧道类型选TCP>端口填22(windows做远程桌面的时候需要写3389)>确认创建
  2. 在docker的CentOS8里面,参考sakurafrp的官网的软件下载那一栏安装软件,命令行输入bash <(curl -s https://getfrp.sh)>按提示即可,如果无法设置为系统服务的话不设置也不影响(一般docker容器都不能)
  3. 可以使用tmux设置会话 方式如上所述

【Linux】docker安装centos8启动SSH服务并跨局域网连接相关推荐

  1. ubuntu 下安装和启动SSH 服务

    安装OPENSSH 服务端 sudo apt-get install openssh-server 查看进程是否启动 ps -e | grep ssh 删除密钥文件 rm /etc/ssh/ssh_h ...

  2. docker安装及启动mysql服务

    目录 1.docker安装mysql 2.连接数据库 1.docker安装mysql 前提:确保自己的服务器已经安装好了docker (1)输入命令,查看docker, docker info 或 d ...

  3. win10 linux ssh自动启动,win10子系统 wsl开机启动ssh服务

    win10子系统 wsl开机启动ssh服务 win10子系统 wsl开机启动ssh服务 一.安装ssh服务 说明:虽然已经安装了ssh服务,但是好像默认自带的不能用.所以需要先卸载再安装. 执行以下命 ...

  4. Parallels虚拟机kali linux 启动ssh服务 容许root远程登陆

    # vim /etc/ssh/sshd_config 启动ssh服务,开机启动ssh # update-rc.d ssh enable 清空known_hosts文件中的内容,再重新连接 vim /U ...

  5. Dropbear 安装配置与启动ssh服务详解

    Dropbear 安装配置与启动ssh服务详解  扎啤 关注 2017.09.12 22:57* 字数 441 阅读 4160评论 0喜欢 0 一.介绍 dropbear作为一款基于ssh协议的轻量级 ...

  6. 服务器安全神器,Linux 上安装 Fail2Ban 保护 SSH

    服务器安全神器,Linux 上安装 Fail2Ban 保护 SSH,这只是其功能的冰山一角 前言 之前使用的 denyhosts 方案已经过时.一些研究表明 hosts.{allow,denied} ...

  7. Docker Container同时启动多服务 supervisor

    Docker Container同时启动多服务 转载请注明来自:http://blog.csdn.net/wsscy2004 昨天踩了个天坑,我有一个基本的镜像centos6.5+ssh,是通过Doc ...

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

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

  9. linux mint 18支持安卓编译,Linux mint 18版本开启SSH服务

    linux mint 18版本默认是没有安装ssh server的 需要手动安装 安装ssh server: 此命令需要联网,会自动下载安装 安装之后看是否开始了ssh, 看到ssh-agent 和s ...

最新文章

  1. 二叉树的前序,中序,后序,层序遍历的递归和非递归实现
  2. LUA学习之路--初识LUA
  3. amr转换成mp3 java_java将amr文件转换为MP3格式(windowslinux均可使用,亲测)
  4. 转——深度学习之BN算法(Batch Normailization)
  5. 未能加载文件或程序集 请移除注册表值 [HKLM/Software/Microsoft/Fusion!EnableLog] 解决方法
  6. 《验收测试驱动开发:ATDD实例详解》—第2章2.2节结对完成第一个测试
  7. 【转】Leopard 安装教程
  8. PHP实现完全二叉树
  9. JDK源码阅读之Long
  10. cpu和内存占用过高,但是任务管理器中的进程占用的内存和cpu看不出来
  11. 华为依然执5G手机市场牛耳,不得不感叹它的强大
  12. 【C++】cout、cerr、clog之间的区别
  13. unity 加载关卡_Unity5.0_Application.isLoadingLevel 正在加载关卡_软件教程_资源库
  14. [数据结构] UVa1471 Defense Lines 防线
  15. aul软件oracle,aul6 oracle数据库恢复工具
  16. 虚拟试穿VTNFP论文笔记
  17. iOS coding多人协作开发工具
  18. Android 电量与网络优化
  19. oracle安装时怎样调整sga,深入讲解调整Oracle SGA大小的解决方法
  20. 用winhex进行GPT磁盘多分区恢复实例——超详细

热门文章

  1. python返回列表中的最大值(最小值)与其索引
  2. 为什么看好酒馆行业所在的夜间经济?
  3. 如何在Ubuntu下安装微信Wechat
  4. 简单易懂的装修流程图
  5. Ubuntu 修改鼠标灵敏度
  6. 情人节送什么好?高颜值数码好物推荐
  7. MySQL 使用命令行导出导出数据库、数据表、表结构
  8. 我的世界关闭服务器死亡消息提示,盘点《我的世界》的12种死法,MC最全的死亡提示!你经历过几个?...
  9. 谷歌三篇论文(GFS,MapReduce,BigTable)
  10. 蓝牙|BLE Mesh详解