编程

基于 Web 的 SSH 客户端

606 2024-09-13 17:39:00

1. 概述

基于 Web 的 SSH 客户端提供了一种方便且独立于平台的解决方案,你可以从任何具有 Web 浏览器的机器访问远程 Linux 系统。这样,基于 web 的 SSH 客户端就不需要在客户端机器上安装额外的软件。基于 Web 的 SSH 客户端在 Linux 系统管理中有几个应用。一方面,当安装传统的 SSH 客户端不可能或不方便时,它们很有用。例如,基于 Web 的客户端在公共计算机上工作或从移动设备访问系统时非常方便

本文中,我们将了解如何通过 Web 浏览器连接到 SSH 服务器。为此,我们使用了运行 OpenSSH 服务器的 Ubuntu 机器

2. 使用 WebSSH

WebSSH 是一个 Python 工具,用于通过 Web 浏览器连接到 SSH 服务器。WebSSH 的外观和感觉与 SSHEasy 相似。

让我们设置 WebSSH 使之在我们的 Ubuntu 系统上工作。为此,我们需要 Python 3 及其包管理器 pip。

首先使用 apt 安装 pip

$ sudo apt install python3-pip

pip 负责安装另外的包,本例中为 webssh

$ sudo pip3 install webssh
Collecting webssh
Downloading webssh-1.6.2.tar.gz (182 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

接下来使用 which 查看 WebSSH 的位置:

$ which wssh
/usr/local/bin/wssh

最后,运行 wssh 命令启动 WebSSH 服务

$ wssh
[I 240403 07:13:30 settings:125] WarningPolicy
[I 240403 07:13:30 main:38] Listening on :8888 (http)
...

所上述输出所示,WebSSH 监听本地机器的 8888 端口。

让我们打开 Web 浏览器并通过 IP 和端口 8888 连接到服务器:

上面的窗口中,我们输入了相应的 SSH 凭据。

由于我们连接的是本地机器,浏览器窗口上没有 Not secure 警告。不过,如有需要,我们可以使用 LesEncrypt 确保安全。

最后,我们看到终端提示:

WebSSH 有一长串功能,包括双因素身份验证和 DSA、RSA、ECDSA 和 Ed25519 密钥身份验证。

3. 使用 Chrome Secure Shell 扩展

Secure Shell 是一个终端模拟器和 SSH (SFTP) 客户端。为了方便起见,它是作为谷歌 Chrome 扩展由谷歌创建的

我们可以使用 Secure Shell 来连接本地网络或互联网上的设备。

安装完扩展后,我们在扩展菜单中点击它。

然后,使用目标服务器的用户名,主机名或 IP 来连接:

接下来,通过输入服务器密码来确认服务器的指纹:

最后,我们将看到目标服务器默认的终端提示

Secure Shell 有许多选项用以自定义其外观。

4. 使用 Shellinabox

Shellinabox 是另外一个基于 Web 的 SSH 终端。具体而言,它提供了一种类似于原生 shell 界面的体验。

让我们使用 apt 在系统上安装 Shellinabox:

$ sudo apt install shellinabox
Reading package lists... Done
Building dependency tree... Done
...

在这个点,我们可以通过编辑 /etc/default/shellinabox 文件来配置 Shellinabox:

$ cat /etc/default/shellinabox
# Should shellinaboxd start automatically
SHELLINABOX_DAEMON_START=1
# TCP port that shellinboxd's webserver listens on
SHELLINABOX_PORT=4200
...

此处,我们可以设置所需的选项,比如端口号。默认情况下,Shellinabox 监听端口 4200

最后,我们来重启 Shellinabox 服务器:

$ sudo systemctl restart shellinabox

现在,我们可以打开 Web 浏览器并导航到 https://server_ip:4200 来访问 Shellinabox 客户端:

然后,使用用户凭据登录:

值得注意的是,我们可以在 Shellinabax 中使用更多的交互功能。例如,我们可以通过在浏览器窗口内单击鼠标右键来定制工具的外观和感觉。

5. 使用 SSHEasy

SSHEasy 是一个基于 web 的 SSH 客户端,具有用户友好的界面。它是在 Golang 的 SSH 和 SFTP 库的基础上开发的。此外,SSHEasy 不存储凭据或任何其他信息。

要使用 SSHEasy 客户端,我们首先打开 SSHEEasy 网页:

此处,我们输入一些必要信息:

  • 要连接的主机:目标服务器的 IP
  • 端口:连接的端口,默认为 22
  • 用户:目标机器的用户名
  • 密码:用户的密码
  • 私钥:存储于本地机器的私钥,通常是 id_rsa

最后,点击 Connect 按钮。然后,验证并接收目标机器指纹:

成功登录后,我们应该能看到远程机器的终端:

此外,SSHEasy 有一个基于 Web 的文件管理器。我们可以用它来导航并管理不同的文件及目录。

SSHEasy 的源码可在 GitHub 上查看。

6. 结论

在本文中,我们介绍了几款基于 web 的 SSH 客户端来访问 SSH 服务器。

首先,我们使用了 WebSSH,这是一个 Python 工具。接下来,我们使用了 Chrome 的 Secure Shell 扩展程序。此外,我们还学习了如何使用 Shellinabox 工具。最后,我们使用了 SSHEasy 工具。