云原生教程之使用Docker部署webssh工具sshwifty

bangongJIAO1@c 发布于 2025-12-12 阅读(12)
目录
  • 一、sshwifty介绍
    • 1.sshwifty简介
    • 2.shwifty 特点
  • 二、检查本地docker环境
    • 1.检查docker版本
    • 2.检查docker状态
  • 三、下载sshwifty镜像
    • 四、服务器生成凭证文件
      • 五、创建sshwifty容器
        • 1.创建部署目录
        • 2.创建sshwifty容器
        • 3.查看sshwifty容器状态
      • 六、访问sshwifty首页
        • 七、sshwifty的基本使用
          • 1.进入连接选项界面
          • 2.选择ssh连接
          • 3.认证信息配置
          • 4.远程ssh连接服务器
          • 5.查看连接延迟状态
        • 总结 

          一、sshwifty介绍

          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容器

          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
          

          云原生教程之使用Docker部署webssh工具sshwifty

          3.查看sshwifty容器状态

          [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首页

          云原生教程之使用Docker部署webssh工具sshwifty

          七、sshwifty的基本使用

          1.进入连接选项界面

          云原生教程之使用Docker部署webssh工具sshwifty

          2.选择ssh连接

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

          云原生教程之使用Docker部署webssh工具sshwifty

          3.认证信息配置

          云原生教程之使用Docker部署webssh工具sshwifty

          4.远程ssh连接服务器

          云原生教程之使用Docker部署webssh工具sshwifty

          5.查看连接延迟状态

          云原生教程之使用Docker部署webssh工具sshwifty

          总结