关于linux:如何在Linux下使用密钥设置SSH无密码登录

40次阅读

共计 1075 个字符,预计需要花费 3 分钟才能阅读完成。

SSH (Secure Shell) 密钥为咱们提供了登录 Linux 和 UNIX 的平安办法。当咱们应用 SSH 密钥拜访 Linux 零碎时,它也被称为无明码 SSH 身份验证。

在这篇文章中,咱们将学习如何在 Linux 中应用密钥设置无明码 SSH 身份验证。

试验筹备

  • 客户主机 (Rocky Linux) — SSH Client — 192.168.1.135
  • 近程主机 (Ubuntu 20.04) — 192.168.1.130

(1) 应用 SSH -keygen 命令在客户主机上生成 SSH 密钥

登录跳转主机,执行 ssh-keyen 命令,应用 rsa 算法生成公私钥对

$ ssh-keygen -t rsa

此命令将提醒您输出公钥和私钥的门路,如果您想放弃默认门路,则按 enter 键,并在提醒设置明码短语时按 enter 键

ssh-keygen 命令的输入如下所示

留神: ssh-keygen 命令默认生成的密钥大小为 2048 位。如果你想扭转键的大小,那么应用 -b 选项前面跟着 size (以位为单位),示例如下所示

$ ssh-keygen -t rsa -b 4096

(2) 复制用户 Public Key 到近程 Linux 零碎

应用 ssh-copy-id 命令将用户公钥拷贝到近程 linux 零碎用户受权密钥文件中。

Syntax: ssh-copy-id <user-name>@<Remote-Linux-System-IP>

$ ssh-copy-id kadmin@192.168.1.130

(3) 测试无明码 SSH 身份验证

当初尝试从跳转主机 ssh 近程零碎

$ ssh kadmin@192.168.1.130

很好,下面的输入确认了咱们能够登录到近程零碎,而不须要指定任何明码。

留神: 一旦密钥替换和测试结束,咱们应该禁用 root 和其余用户的基于明码的身份验证。

为此,请编辑 /etc/ssh/sshd_config 文件,而后设置以下参数:

PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
UsePAM yes

保留并退出文件,并应用上面的 systemctl 命令重新启动 ssh 服务

$ sudo systemctl restart sshd

另一个要点是近程用户,在咱们的例子中 kadmin 应该是 sudo 组的一部分,并且领有管理权限,这样它就能够执行治理工作。

以上就是这篇文章的全部内容,我心愿你感觉它有用,请在上面的评论区写下你的问题和反馈。

我的开源我的项目

  • course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
  • course-tencent-cloud(酷瓜云课堂 – github 仓库)

正文完
 0