【Linux】docker安装centos8启动SSH服务并跨局域网连接
适用于基于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¥)>隧道类型选TCP>端口填22(windows做远程桌面的时候需要写3389)>确认创建
- 在docker的CentOS8里面,参考sakurafrp的官网的软件下载那一栏安装软件,命令行输入
bash <(curl -s https://getfrp.sh)
>按提示即可,如果无法设置为系统服务的话不设置也不影响(一般docker容器都不能) - 可以使用tmux设置会话 方式如上所述
【Linux】docker安装centos8启动SSH服务并跨局域网连接相关推荐
- ubuntu 下安装和启动SSH 服务
安装OPENSSH 服务端 sudo apt-get install openssh-server 查看进程是否启动 ps -e | grep ssh 删除密钥文件 rm /etc/ssh/ssh_h ...
- docker安装及启动mysql服务
目录 1.docker安装mysql 2.连接数据库 1.docker安装mysql 前提:确保自己的服务器已经安装好了docker (1)输入命令,查看docker, docker info 或 d ...
- win10 linux ssh自动启动,win10子系统 wsl开机启动ssh服务
win10子系统 wsl开机启动ssh服务 win10子系统 wsl开机启动ssh服务 一.安装ssh服务 说明:虽然已经安装了ssh服务,但是好像默认自带的不能用.所以需要先卸载再安装. 执行以下命 ...
- Parallels虚拟机kali linux 启动ssh服务 容许root远程登陆
# vim /etc/ssh/sshd_config 启动ssh服务,开机启动ssh # update-rc.d ssh enable 清空known_hosts文件中的内容,再重新连接 vim /U ...
- Dropbear 安装配置与启动ssh服务详解
Dropbear 安装配置与启动ssh服务详解 扎啤 关注 2017.09.12 22:57* 字数 441 阅读 4160评论 0喜欢 0 一.介绍 dropbear作为一款基于ssh协议的轻量级 ...
- 服务器安全神器,Linux 上安装 Fail2Ban 保护 SSH
服务器安全神器,Linux 上安装 Fail2Ban 保护 SSH,这只是其功能的冰山一角 前言 之前使用的 denyhosts 方案已经过时.一些研究表明 hosts.{allow,denied} ...
- Docker Container同时启动多服务 supervisor
Docker Container同时启动多服务 转载请注明来自:http://blog.csdn.net/wsscy2004 昨天踩了个天坑,我有一个基本的镜像centos6.5+ssh,是通过Doc ...
- docker容器内开启22 ssh_在docker容器中开启ssh服务 (未成功有时间再验证)
一. 利用ubuntu:14.04镜像创建一个容器: [root@docker ~]# docker run -it ubuntu:14.04 /bin/bash root@161f67ccad50: ...
- linux mint 18支持安卓编译,Linux mint 18版本开启SSH服务
linux mint 18版本默认是没有安装ssh server的 需要手动安装 安装ssh server: 此命令需要联网,会自动下载安装 安装之后看是否开始了ssh, 看到ssh-agent 和s ...
最新文章
- 二叉树的前序,中序,后序,层序遍历的递归和非递归实现
- LUA学习之路--初识LUA
- amr转换成mp3 java_java将amr文件转换为MP3格式(windowslinux均可使用,亲测)
- 转——深度学习之BN算法(Batch Normailization)
- 未能加载文件或程序集 请移除注册表值 [HKLM/Software/Microsoft/Fusion!EnableLog] 解决方法
- 《验收测试驱动开发:ATDD实例详解》—第2章2.2节结对完成第一个测试
- 【转】Leopard 安装教程
- PHP实现完全二叉树
- JDK源码阅读之Long
- cpu和内存占用过高,但是任务管理器中的进程占用的内存和cpu看不出来
- 华为依然执5G手机市场牛耳,不得不感叹它的强大
- 【C++】cout、cerr、clog之间的区别
- unity 加载关卡_Unity5.0_Application.isLoadingLevel 正在加载关卡_软件教程_资源库
- [数据结构] UVa1471 Defense Lines 防线
- aul软件oracle,aul6 oracle数据库恢复工具
- 虚拟试穿VTNFP论文笔记
- iOS coding多人协作开发工具
- Android 电量与网络优化
- oracle安装时怎样调整sga,深入讲解调整Oracle SGA大小的解决方法
- 用winhex进行GPT磁盘多分区恢复实例——超详细