DevOps系列文章之Docker部署web ssh工具sshwifty

news/2024/11/8 4:32:50/

一、介绍 

1.sshwifty简介

sshwifty是一款Web SSH & Telnet(WebSSH & WebTelnet 客户端工具。

2.shwifty 特点

shwifty 是为 Web 设计的 SSH 和 Telnet 连接器。它可以部署在您的计算机或服务器上,为任何兼容(标准)的网络浏览器提供 SSH 和 Telnet 访问接口。

二、检查本地docker环境

1.检查docker版本

[root@jeven ~]# docker version

Client: Docker Engine - Community

 Version:           20.10.21

 API version:       1.41

 Go version:        go1.18.7

 Git commit:        baeda1f

 Built:             Tue Oct 25 18:04:24 2022

 OS/Arch:           linux/amd64

 Context:           default

 Experimental:      true

Server: Docker Engine - Community

 Engine:

  Version:          20.10.21

  API version:      1.41 (minimum version 1.12)

  Go version:       go1.18.7

  Git commit:       3056208

  Built:            Tue Oct 25 18:02:38 2022

  OS/Arch:          linux/amd64

  Experimental:     false

 containerd:

  Version:          1.6.12

  GitCommit:        a05d175400b1145e5e6a735a6710579d181e7fb0

 runc:

  Version:          1.1.4

  GitCommit:        v1.1.4-0-g5fd4c4d

 docker-init:

  Version:          0.19.0

  GitCommit:        de40ad0

2.检查docker状态

[root@jeven ~]# systemctl status docker

● docker.service - Docker Application Container Engine

   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)

   Active: active (running) since Sat 2022-12-10 02:07:56 CST; 1 day 16h ago

     Docs: https://docs.docker.com

 Main PID: 3200 (dockerd)

    Tasks: 51

   Memory: 2.2G

   CGroup: /system.slice/docker.service

           ├─ 3200 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

           ├─10894 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8777 -container-ip 192.168.144.3 -container-port 80

           ├─10900 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8777 -container-ip 192.168.144.3 -container-port 80

           ├─47983 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8030 -container-ip 192.168.160.4 -container-port 8002

           ├─47989 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8030 -container-ip 192.168.160.4 -container-port 8002

           ├─79289 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8182 -container-ip 172.17.0.2 -container-port 8182

           └─79295 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8182 -container-ip 172.17.0.2 -container-port 8182

Dec 10 17:59:26 jeven dockerd[3200]: time="2022-12-10T17:59:26.025354968+08:00" level=info msg="ignoring event" container=f12196399ec79af5...skDelete"

Dec 10 17:59:29 jeven dockerd[3200]: time="2022-12-10T17:59:29.686116328+08:00" level=info msg="ignoring event" container=f12196399ec79af5...skDelete"

Dec 10 18:23:34 jeven dockerd[3200]: time="2022-12-10T18:23:34.990641014+08:00" level=info msg="ignoring event" container=c663d02e84709140...skDelete"

Dec 10 18:26:49 jeven dockerd[3200]: time="2022-12-10T18:26:49.278375069+08:00" level=info msg="ignoring event" container=c261a231fd3a667e...skDelete"

Dec 10 18:30:06 jeven dockerd[3200]: time="2022-12-10T18:30:06.474584540+08:00" level=info msg="ignoring event" container=c030677ef4c374ce...skDelete"

Dec 10 18:56:18 jeven dockerd[3200]: time="2022-12-10T18:56:18.697839686+08:00" level=info msg="ignoring event" container=1dee36827375e093...skDelete"

Dec 10 21:38:37 jeven dockerd[3200]: time="2022-12-10T21:38:37.225136574+08:00" level=info msg="ignoring event" container=9eb379c6b627f271...skDelete"

Dec 11 11:25:12 jeven dockerd[3200]: time="2022-12-11T11:25:12.020544314+08:00" level=info msg="Attempting next endpoint for pull after er...er Error"

Dec 11 11:39:16 jeven dockerd[3200]: time="2022-12-11T11:39:16.374445047+08:00" level=info msg="Container failed to exit within 10s of sig...ee64e0fee

Dec 11 11:39:16 jeven dockerd[3200]: time="2022-12-11T11:39:16.417759049+08:00" level=info msg="ignoring event" container=a8ec136f38e4cfa8...skDelete"

Hint: Some lines were ellipsized, use -l to show in full.

三、下载sshwifty镜像

[root@jeven ~]# docker pull  niruix/sshwifty:latest

latest: Pulling from niruix/sshwifty

59bf1c3509f3: Already exists

eb8f919181be: Pull complete

21facffd2b84: Pull complete

ea1365dbf4a0: Pull complete

latest: Pulling from niruix/sshwifty

213ec9aee27d: Already exists

db074b00f828: Pull complete

af1b674602a2: Pull complete

5f786aa6e56f: Pull complete

Digest: sha256:410a48bbce146d01ca7e5f20ff67e55dfdab5afbe46ae41ad696d659c6856670

Status: Downloaded newer image for niruix/sshwifty:latest

docker.io/niruix/sshwifty:latest

四、服务器生成凭证文件

[root@jeven ~]# openssl req   -newkey rsa:4096 -nodes -keyout domain.key -x509 -days 90 -out domain.crt

Generating a 4096 bit RSA private key

...........................................................................................................++

...++

writing new private key to 'domain.key'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [XX]:

State or Province Name (full name) []:

Locality Name (eg, city) [Default City]:

Organization Name (eg, company) [Default Company Ltd]:

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) []:

Email Address []:

 

五、创建sshwifty容器

1.创建部署目录

mkdir -p  /data/sshwifty

2.创建sshwifty容器

1

2

3

4

5

6

7

docker run --detach \

  --restart always \

  --publish 8182:8182 \

  --env SSHWIFTY_DOCKER_TLSCERT="$(cat domain.crt)" \

  --env SSHWIFTY_DOCKER_TLSCERTKEY="$(cat domain.key)" \

  --name sshwifty \

  niruix/sshwifty:latest

3.查看sshwifty容器状态

1

2

3

[root@jeven ~]# docker ps

CONTAINER ID   IMAGE                    COMMAND                  CREATED        STATUS        PORTS                                       NAMES

d03202a5cce7   niruix/sshwifty:latest   "/sshwifty.sh"           8 hours ago    Up 8 hours    0.0.0.0:8182->8182/tcp, :::8182->8182/tcp   sshwifty

六、访问sshwifty首页

七、sshwifty的基本使用

1.进入连接选项界面

2.选择ssh连接

填写服务器IP地址等信息,选择认证方式

3.认证信息配置

4.远程ssh连接服务器

5.查看连接延迟状态

目前显示延迟3ms

总结 

在一些需要以浏览器形式访问远程访问服务器控制台的场景中推荐使用。


http://www.ppmy.cn/news/553439.html

相关文章

CentOS下安装cups实现局域网共享HP1020打印机

前言 老式打印机旧电脑局域网打印机 准备工作 HP1020打印机;CentOS主机,并接入局域网,分配固定IP;Windows或Mac、Linux电脑一台。 将打印机usb连入CentOS主机。 安装打印机驱动 在/usr目录下新建Downloads文件夹 mkdir /us…

蔡康永:我要的三国就是威力无双。0氪玩家玩了两个礼拜后

我玩王者荣耀好几年了,每天都要撸几把,风雨无阻,不知道为什么,最近突然就不想玩了,想找点其他游戏玩玩。 想起了多年前玩街机游戏时候的青骢岁月,那时候要是能捡到一个游戏币比捡到钱还高兴。当时印象最深…

配置Confluent Schema Registry使用IAM认证连通AWS MSK

Confluent Schema Registry在运行时需要连通Kafka集群进行一些必要的操作,例如Confluent Schema Registry会在Kafka上创建并使用一个名为_schemas的Topic。另一方面,AWS MSK推荐使用的认证方式是IAM,这是开源Kafka集群所不具有的特性。当我们需要将Confluent Schema Registr…

如何设置笔记本电脑充电到70%就停止充电_笔记本电脑电池保护如何设置_win10设置电池保护_win10设置电池70%电量就停止充电

首先为了我的标题诈骗道歉——你根本无法在win10的系统设置里面找到任何有关于70%电量停止充电的选项,这个选项是各大笔记本厂商设计的。 对于华为matebook16: 华为电脑管家: 在设置中心的嗲暖设置里面就可以选择了:…

关于ThinkPad笔记本电脑显示“电源已接通,未充电”

ThinkPad系列的笔记本经常会有电池方面的问题,最多的就是“电源已接通,未充电”这样令人头痛的问题(我已遇到三次,换了一次电源) 对于这种问题,我们基本尝试以下几种做法: 1.关机,拆…

解决笔记本电池驱动问题

电池的驱动程序遭到破坏,尽管电池依旧可以充放电过程,但此时系统已无法对它进行监控,看不到使用量,这问题不解决是绝对不行!我直接在设备管理器中把项目“Microsoft Composite Battery”删除,再到控制面板中…

笔记本充电提示考虑更换电池的解决方法

更新最新的驱动,点击电池充电图标,把“在我的电池需要更换时发出警告”勾选框去掉对勾就行了。 转载于:https://www.cnblogs.com/yijianzhongqing/p/6281481.html

关于笔记本电池显示未充电的

以前没有注意笔记本电脑充电的时候,会经常显示电源已连接但是未充电,我本以为电脑设置出问题了,可是电脑设置正常,再重新连接一遍充电器仍然发现电池图标显示是未充电,但是首先可以排除的是电脑的电池绝对没有出现问题…