这篇文章主要讲解了“怎么使用Docker部署webssh工具sshwifty”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Docker部署webssh工具sshwifty”吧!
一、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
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首页
七、sshwifty的基本使用
1.进入连接选项界面
2.选择ssh连接
填写服务器IP地址等信息,选择认证方式
3.认证信息配置
4.远程ssh连接服务器
5.查看连接延迟状态