Linux 设置无密码 SSH

SSH,也称为“安全外壳”,是一种用于登录远程 Linux 服务器的开源协议。 系统和网络管理员使用它从远程位置管理 Linux 服务器。 它还用于在多个 Linux 系统之间传输文件。 登录远程 Linux 系统有两种方法:使用密码验证和基于密钥的验证。 基于密钥的身份验证比密码更安全,因为只有拥有有效密钥的用户才能登录 Linux。

在这篇文章中,我们将向我们展示 Linux 上设置无密码 SSH。

先决条件

  • 云平台上的 Linux 服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Ubuntu、CentOS 或 Rocky Linux 作为操作系统,至少 2GB RAM。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

apt-get update -y

或者

dnf update -y

第 2 步 – 生成 SSH 密钥

首先,我们需要在我们工作的机器上生成一个 SSH 密钥对。

我们可以使用以下命令生成它:

ssh-keygen -t rsa

系统将要求我们指定存储密钥的位置,如下所示:

Enter file in which to save the key (/home/vyom/.ssh/id_rsa): 

只需按 Enter 并接受默认路径。 系统将要求我们设置密码,如下所示:

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

只需按 Enter 即可,无需提供任何密码。 我们应该看到以下输出:

Wer identification has been saved in /home/vyom/.ssh/id_rsa.
Wer public key has been saved in /home/vyom/.ssh/id_rsa.pub.
The key fingerprint is:
ec:50:43:d9:39:64:f8:19:63:18:ab:1c:e4:ea:f5:e7 vyom@newpc
The key's randomart image is:
+--[ RSA 2048]----+
|      . oBo.     |
|     o .+oB      |
|      o +o =     |
|     o = .o      |
|    . = S        |
|   . . +         |
|    .   o .      |
|         o       |
|          E      |
+-----------------+

现在,使用以下命令验证我们的 SSH 密钥:

ls -la ~/.ssh/id_*.pub

我们应该看到以下输出:

-rw-r--r-- 1 vyom vyom 392 Sep  8 14:34 /home/vyom/.ssh/id_rsa.pub

第 3 步 – 将 SSH 公钥复制到远程服务器

现在,我们需要将公钥复制到远程服务器。 我们可以使用 ssh-copy-id 命令执行此操作:

ssh-copy-id root@69.87.217.12

系统将要求我们提供远程服务器的 root 密码以复制公钥:

root@69.87.217.12's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@69.87.217.12'"
and check to make sure that only the key(s) we wanted were added.

第 4 步 – 无密码连接远程服务器

至此,SSH 密钥生成并复制到远程服务器。 我们现在可以在不提供密码的情况下连接到远程服务器:

ssh root@69.87.217.12

连接后,我们应该会看到以下输出:

Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-29-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

Last login: Wed Sep  8 07:50:27 2021 from 106.222.86.57
root@ubuntu:~# 

第 5 步 – 删除基于密码的身份验证

至此,基于 SSH 密钥的身份验证配置成功。 现在,建议我们禁用密码验证,以便每个人都只使用密钥来访问服务器。

在远程 Linux 服务器上,编辑 SSH 主配置文件:

nano /etc/ssh/sshd_config

取消注释并更改以下行:

PasswordAuthentication no

保存并关闭文件,然后重新启动 SSH 服务以应用更改:

systemctl restart ssh

在上面的指南中,我们学习了 Linux 上设置 SSH 无密码身份验证。 我们现在可以为要远程管理的每台服务器实施基于 SSH 密钥的身份验证。 今天就在 的 VPS 主机上试试吧。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论