越来越多的没有经验的用户正在设置 托管帐户,以尝试启动一个成功的在线项目。仅仅因为大量的技术术语和看似无休止的任务,靠前步可能有点吓人。SSH是一项在新手中引起很多困惑的技术的一个很好的例子。今天指南的任务是澄清围绕这个管理解决方案的一些紧迫问题。
什么是 SSH?
SSH 代表 Secure Shell,它是一种在两台计算机之间建立连接 的通信协议。但它如何帮助您在托管帐户上管理您的网站?这很简单。您的站点托管在服务器上 - 本质上,是位于距离您数千英里的数据中心的强大计算机。如果您需要对您的网站进行任何更改,您无需前往数据中心并从那里管理服务器。您可以从家里或办公室连接到它。
这就是 Secure Shell 发挥作用的地方。虽然其他协议也允许您远程管理您的帐户,但 SSH 在安全性方面表现出色。但它究竟是如何创造出如此安全的环境的呢?
SSH 是如何工作的?
SSH 的历史可以追溯到1995 年,当时芬兰研究员Tatu Ylönen正在对抗针对赫尔辛基大学网络的密码嗅探攻击。当时流行的通信协议在客户端和服务器之间建立了明文连接。这意味着他们以人类可读的格式传输了所有数据,包括用户名和密码。
这种环境使黑客很容易拦截登录凭据并渗透到目标网络。Ylönen 意识到,通过使用加密,他可以创建更安全的连接。该想法由Internet 工程任务组进一步发展,该任务组于2006 年发布了该协议的第 2 版。由于对称、非对称加密和散列的组合, SSH-2甚至比其前身更安全。在了解 SSH 的工作原理时,了解不同的加密技术至关重要。
对称加密
在对称加密中,您的计算机使用加密密钥将您发送的信息(例如,您尝试在服务器上执行的命令)转换为混乱的字母和数字字符串。收到后,服务器使用相同的密钥来解密命令。您的计算机和服务器遵循预先确定的密钥交换算法来生成对称密钥。他们独立完成,从不与第三方共享密钥。
非对称加密
非对称加密有点复杂。建立连接后,客户端和服务器生成公钥/私钥对。顾名思义,公钥是现成的。然而,私钥只存储在两台通信机器上。在非对称加密中,您使用公钥加密数据,使用私钥解密数据。当您通过非对称加密连接传输一条信息时,您的计算机会使用其公钥来加密您的数据并在传输过程中对其进行保护。服务器只有拥有你机器的私钥才能解密它。
散列
散列是一个完全不同的概念。与对称和非对称加密类似,它是一种将信息打乱的功能,使攻击者无法拦截和读取它。通过散列算法的每条消息都会产生一个称为散列值的较早字符串。但是,没有密钥可以解密数据并将其恢复为人类可读的格式。这是一种单向加密功能,不允许检索原始信息。
SSH 如何与这些加密技术一起工作?
建立与您的服务器的SSH 连接不超过几秒钟,但在表面之下,发生了很多事情。首先,您有会话加密协商阶段。在此过程中,您的计算机和服务器各自提供了一个受支持的加密和散列算法列表,并且两台机器就它们将使用哪一个达成一致。
接下来,您的计算机和服务器会生成公私密钥对。然后,服务器使用您的公钥加密质询并将其发送回给您。它使用非对称加密,这意味着您的机器只有在拥有您的私钥时才能解密挑战。
如果是这种情况 – SSH 会话开始。您的计算机和服务器现在共享公共数据,并使用预定的密钥交换算法来创建对称加密密钥。这个将用于保护两台机器之间的信息流。密钥交换算法仍然未知,因此没有其他人可以生成加密密钥。
建立安全连接后,您的计算机和服务器使用预先确定的散列算法为在两台机器之间传递的每条消息创建较早的基于散列的消息身份验证代码(或 HMAC)。每个验证码都是根据消息的内容、对称加密密钥和数据包序列号计算得出的。HMAC 在那里确保消息的真实性并保证它们没有被篡改。最后一步是验证用户。在让您进入之前,服务器会询问您的登录凭据或使用加密密钥来验证您的身份。
如何在您的 VPS 上设置 SSH?
您将如何通过 SSH 访问 VPS主要取决于您的主机帐户。例如,对于自我管理的虚拟服务器,默认情况下启用 SSH,并且您可能具有root 访问权限。使用托管 VPS 解决方案,情况会有所不同。通常,您会获得一个点击式界面,您可以通过该界面创建个人帐户、修改其权限并启用其 SSH 访问。有多个虚拟主机控制面板,每个控制面板都有自己的图形用户界面(或 GUI),因此您需要采取的确切步骤取决于管理平台。
例如,如果您的托管服务提供商使用cPanel/WHM,您需要执行以下操作:
- 登录WHM
- 从左侧菜单中,找到帐户功能部分并选择修改帐户
- 找到您要更改的帐户,然后单击修改
- 向下滚动到页面底部,然后选中外壳访问复选框
- 点击保存
- 一个弹出窗口将询问您是否要更新软件包并使该组中的所有用户都可以使用 SSH 访问。选择最合适的选项,然后单击继续
如果您使用ScalaHosting 的 SPanel VPS之一,也可以为个人帐户启用 SSH 访问。
以下是步骤:
- 登录SPanel 管理界面
- 从左侧菜单转到管理 SSH 访问
- 找到您需要的帐户并使用它旁边的切换开关来启用和禁用 SSH 访问
SSH 是出于更安全的通信协议的需要而开发的,它使用的复杂密码术表明安全性是其核心。不过,如果您有一个具有默认配置的自我管理服务器,您可以采取几个步骤来进一步保护您的机器。
更改默认 SSH 端口是靠前个。众所周知,SSH 默认通过端口 22工作,想要强行进入服务器的黑客通常会针对它进行攻击。切换到另一个自由端口通常足以阻止它们或至少减慢它们的速度。
为了阻止更有针对性的攻击,您可以使用 SSH 客户端生成公钥和私钥对以进行身份验证。大多数人可能已经习惯了默认的用户/密码机制,但加密密钥提供了更多的安全性。
SSH 用例
大多数站点管理员使用 SSH 来执行命令。Linux和macOS等基于 Unix 的操作系统可以直接从终端通过 SSH 连接到远程服务器。在2018 年更新之后,也可以通过Windows PowerShell通过 SSH 访问您的服务器,因此 Microsoft 操作系统的用户不再需要单独的客户端应用程序。
在通过 SSH 管理服务器时,没有可用的 GUI 选项。如果您想使用该协议 - 您需要熟悉命令行界面工具。无论操作系统和软件如何,您将用于通过 SSH 连接到服务器的命令是:
ssh [你的用户名]@[服务器的IP]
成功验证后,您将登录到服务器并可以开始使用标准命令对其进行管理。
如果您不习惯命令行界面,您可能会认为 SSH 过于复杂,尤其是考虑到基于 GUI 的管理平台范围广泛。
但是,不同的项目有不同的需求,有些网站管理员依赖的工具只能通过 SSH 操作。此外,许多有经验的用户发现通过控制台管理他们的网站更容易、更快捷。
不过,命令执行远非 SSH 的较早应用。该协议可用于隧道端口和连接,并保护您能想到的几乎任何网络服务。使用 SSH 的最著名的服务示例是SFTP。
结论
SSH 似乎是一种相当老式的托管帐户管理方式,尤其是对于习惯于点击控制面板的人来说。该协议确实已经存在了很长一段时间,它并不是管理网站的最新手友好的方式。不过,这并没有降低它的功能。一旦你熟悉了环境和命令——你就会忘记还有其他的做事方式。