连接 Linux 服务器的主要方式是通过SSH 协议。这种连接方式很安全,因为所有传输的数据都会被加密。要建立SSH 连接,需要在要连接的远程服务器和用户端的客户端上进行配置。有很多 SSH 连接软件可供选择。在 Linux 系统中,OpenSSH 是最流行的,而在 Windows 系统中,人们大多使用 PuTTY。
让我们以 Ubuntu Server 18.04 为例仔细了解服务器配置,然后尝试从 Linux 和 Windows 连接到服务器。
我们所有的操作都将通过普通用户账户进行。在本例中,我们创建了用户“ mihail ”,而“ root ”账户默认情况下是禁用的。
服务器端设置
运行此命令设置包:
sudo apt install openssh-server
安装完成后,请确保服务正在运行。使用此命令:
systemctl status sshd
状态“活动(运行中) ”表示该服务已启用并正常运行。
为了避免防火墙阻止传入连接,请确保禁用它,因为我们不会在本文中配置网络防火墙。
使用这个命令:
sudo ufw disable
此时您已经可以连接到服务器。使用默认设置,服务器允许使用基于密码的身份验证连接到标准端口 22。
Linux 上的 SSH 连接
通常,OpenSSH 客户端默认安装在 Linux 上,不需要额外的手动配置。可以使用 ssh 命令从终端建立连接。在这种情况下,参数将是远程服务器的用户名和 IP 地址。在我们用作示例的测试服务器上,只有一个帐户“mihail”,因此我们将使用它。
ssh [email protected]
首次连接时,您需要确认是否将服务器的公钥添加到数据库,请选择“是”。之后,您可以输入密码。如果连接成功,您将看到服务器命令行界面的欢迎信息。现在,所有命令都将在远程服务器上执行。
通过 Windows 进行 SSH
打开 PuTTY 并设置连接参数。确保“连接类型”开关设置为SSH 。在“主机名”字段中输入 IP 地址,在“端口”字段中输入默认值22,然后单击“打开”。
首次连接时,PuTTY会要求您确认是否信任此服务器,请点击“是”。
输入登录名和密码后,您将看到远程服务器的命令行。
通过密钥进行身份验证。提高安全级别
当客户端尝试通过 SSH 与服务器建立安全连接时,服务器在允许连接之前需要对客户端进行身份验证(验证)。如前所述,通常默认使用基于密码的身份验证。它不能提供强大的安全性,因为总有办法对其进行暴力破解。此外,密码身份验证不适用于使用脚本的 SSH 连接。
对于此类任务,有一种特殊的密钥身份验证方法。关键是客户端生成私钥和公钥,然后将公钥发送到服务器。之后,您不需要密码即可连接到服务器,因为身份验证是基于公钥和私钥进行的。为了提供良好的安全性,应该限制对私钥的访问。由于私钥存储在客户端,不通过网络传输,因此这种方法被认为更安全。
Linux 上的密钥身份验证
让我们在 ssh-keygen 实用程序软件的帮助下在客户端生成公钥和私钥。该工具将建议更改私钥的路径并输入密码以增强安全性。在所有请求中按 Enter 保留所有参数的默认值。
因此,在主目录的 .ssh 文件夹中,您将找到生成的两个文件:id_rsa和id_rsa.pub,其中分别包含私钥和公钥。
之后,您需要将公钥发送到服务器。为此,请将“ id_rsa.pub ”文件的内容复制到服务器上的“ ~/.ssh/authorized_keys ”文件中。为了更方便,我们使用“ ssh-copy-id ”工具。输入服务器的登录名和IP地址,就像进行普通连接一样。输入密码后,客户端的公钥将自动复制到服务器。运行以下命令:
ssh-copy-id [email protected]
完成所有操作后,服务器将不再需要输入密码。
在 Windows 上通过密钥进行身份验证
打开PuTTYGEN并点击“生成”。要生成密钥,只需将鼠标移动到屏幕上,该工具就会随机生成密钥。
密钥生成后,点击“保存私钥”,将其保存到磁盘上名为“私钥”的文件中。您可以设置任意路径,但稍后需要在 PuTTY 中指定该路径。然后从窗口顶部复制公钥。
我们只需将公钥复制到终端即可发送。打开PuTTY并像往常一样连接到服务器。现在,我们创建“ .ssh/authorized_keys ”文件,并限制其他用户访问该文件,使其仅对创建者可见。
mkdir .ssh
touch .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
创建文件后,将客户端的公钥放入其中。在上一阶段,我们将公钥复制到剪贴板。要将剪贴板中的内容记录到文件中,请使用 cat 命令和输出重定向。
cat > .ssh/authorized_keys
输入命令后,在终端窗口中单击鼠标右键,粘贴剪贴板中的内容。要确认输入,请按“ Ctrl+D ”快捷键并断开与服务器的连接。
现在让我们在Putty中指定私钥的路径并再次连接到服务器。
从现在开始,为了连接到服务器,您只需输入用户名。如果您尝试从没有正确私钥的另一台设备连接到服务器,服务器将要求输入密码。设置基于密钥的身份验证后,您可以禁止通过密码访问。