当我们需要安全地连接到远程服务器时,需要一种比简单密码更安全的方法,SSH可以提供必要级别的保护。
SSH代表安全外壳。它是一种基于加密的网络协议,用于安全地远程访问计算机和服务器。SSH 中使用的技术通过加密传输的所有数据(包括密码和命令)在客户端和服务器之间提供安全通道。
SSH 允许用户安全地登录远程系统并执行命令,就像直接与本地机器交互一样。
通过 SSH 进行连接需要 SSH 服务器和 SSH 客户端。SSH 服务器侦听 TCP/IP 端口上的连接,并在客户端请求连接时进行身份验证,然后开始为客户端提供服务,允许用户使用服务器。SSH 客户端用于登录远程计算机并执行必要的命令。
你还需要在开始时创建一个私钥和一个公钥,然后将公钥添加到服务器。私钥由用户存储,用于访问服务器。
如果您想从 Windows 操作系统连接到远程服务器,只需在计算机上安装一个特殊实用程序(PuTTY、SecureCRT、ShellGuard、Axessh 或其他)。在这种情况下,所有操作都使用图形界面执行,仅在某些情况下使用命令行。
如果您从 Linux 或 MacOS 进行连接,除了安装特殊实用程序(Openssh、kdessh、lsh-client 等)之外,您还需要内置的终端实用程序。在终端中,您需要输入命令来连接到远程服务器。
SSH 密钥是 SSH 协议中用于安全身份验证的一对加密密钥。密钥对由一个公钥和一个私钥组成。公钥驻留在远程服务器上,而私钥则安全地存储在用户的计算机或设备上。
当用户尝试与服务器建立 SSH 连接时,服务器会向客户端发送请求。客户端使用其私钥创建数字签名,并将其发送回服务器。服务器可以使用存储在服务器上的相应公钥来验证此签名。如果签名有效,则授予客户端访问权限。
SSH 密钥是一种比传统的基于密码的身份验证更安全、更方便的替代方案。它们消除了通过网络传输密码的需要,并且可以抵御暴力攻击。系统管理员、开发人员和其他经常访问远程服务器的用户通常使用 SSH 密钥。
以下命令用于直接使用 SSH 密钥:
SSH 还允许您使用导航、数据库、文件、目录、档案及其内容(创建目录和文件、复制、移动、重命名、删除文件和目录等)。还有一组命令可用于此目的。
检查 SSH 是否已启用,因为许多 Linux 发行版和 MacOS 系统默认安装它。要检查 SSH 是否已启用,请打开终端并输入以下命令
ssh 本地主机
如果您看到“连接被拒绝”或“连接超时”等消息,则表示当前未启用或配置 SSH。如果您收到要求输入密码或密码短语的响应,则表示 SSH 已启用。
如果需要,请设置 SSH。在基于 Ubuntu 或 Debian 的系统上,您可以通过运行以下命令来执行此操作
sudo apt-get 安装 openssh-server
在 MacOS 上,SSH 通常是预先安装的。
Windows 上没有预装 SSH(例如 OpenSSH;通过开始 – 设置 – 应用程序 – 应用程序和功能 – 高级组件检查此组件)。
安装 SSH 后,可能需要进行配置,但可以保留默认配置。SSH 服务器配置文件通常位于 Linux 系统上的 /etc/ssh/sshd_config、MacOS 上的 /etc/sshd_config 和 Windows 上的 C:\ProgramData\ssh\sshd_config。
使用管理员权限打开配置文件(sudo nano /etc/ssh/sshd_config)并进行必要的更改:
完成更改后,保存文件并重新启动 SSH 服务。在基于 Ubuntu 或 Debian 的系统上,命令如下:
sudo 服务 ssh 重启
在 MacOS 上,保存配置文件后会自动重新启动 SSH 服务。
如果启用了防火墙,您将需要使用以下命令允许传入的 SSH 连接:
sudo ufw 允许 ssh
要授予 Windows 权限,请按照以下步骤操作
完成这些步骤后,您将需要创建一个 SSH 密钥并使用 SSH 客户端连接到远程服务器。
可以在特殊的在线服务中或使用针对操作系统(Windows、Linux、MacOS)定制的实用程序在 PC 上生成 SSH 密钥。
对于 Windows,我们建议使用 PuTTY 实用程序(PuTTYgen 应用程序会自动安装以生成密钥,请从官方网站下载)。密钥生成在应用程序内部通过清晰的 GUI 界面完成,然后必须将公钥(具有 .pub 扩展名)复制到服务器的 authorized_keys 文件中。
要在 Linux 或 MacOS 系统上创建 SSH 密钥,我们建议使用终端中的两个命令(sudo apt update和sudo apt install openssh-client)和 OpenSSH 服务器(sudo apt update和sudo apt install openssh-server)安装 OpenSSH 客户端。然后继续在终端中工作:
ssh-keygen -t rsa -b 2048
生成公钥/私钥 RSA 密钥对。
输入保存密钥的文件(/root/.ssh/id_rsa):
输入密码(无密码则为空):
再次输入相同的密码:
id_rsa是私钥文件的标准名称。
id_rsa.pub是公钥文件的标准名称。使用私钥时,必须将此密钥复制到要访问的服务器。
对于 Linux/MacOS 连接,与密钥生成一样,使用内置终端实用程序。
完成!您已连接到服务器。
要使用 Windows 操作系统连接到服务器,您需要登录 PuTTY。这是我们生成密钥的地方。
完成!您已连接到服务器。
一般来说,使用 SSH 安全连接到远程服务器的步骤不止于此。SSH 连接本身比其他连接服务器的方式更安全,而且学习起来也不那么困难。