如何在Linux下使用密钥设置SSH无密码登录 ?

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 命令的输出如下所示

Generate-SSH-Keys-Linux

注意: 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

ssh-copy-id-command-linux

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

现在尝试从跳转主机 ssh 远程系统

$ ssh kadmin@192.168.1.130

ssh-authentication-from-client-linux

很好,上面的输出确认了我们可以登录到远程系统,而不需要指定任何密码。

注意: 一旦密钥交换和测试完毕,我们应该禁用 root 和其他用户的基于密码的身份验证。

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

PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
UsePAM yes

保存并退出文件,并使用下面的 systemctl 命令重新启动 ssh 服务

$ sudo systemctl restart sshd

另一个要点是远程用户,在我们的例子中 kadmin 应该是 sudo 组的一部分,并且拥有管理权限,这样它就可以执行管理任务。

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

我的开源项目

酷瓜云课堂-开源网校系统

身强体健,龙精虎猛的活着。

456 声望
3 粉丝
0 条评论
推荐阅读
如何在 CentOS 8 上配置邮件服务器 ?
Postfix 是一个免费的开源 MTA (Mail Transfer Agent) 邮件传输代理,用于在 Linux 系统上路由或发送电子邮件。在本指南中,您将学习如何在 CentOS 8 上安装和配置 Postfix。

鸠摩智首席音效师阅读 257

Laravel入门及实践,快速上手ThinkSNS+二次开发
【摘要】自从ThinkSNS+不使用ThinkPHP框架而使用Laravel框架之后,很多人都说技术门槛抬高了,其实你与TS+的距离仅仅只是学习一个新框架而已,所以,我们今天来说说Laravel的入门。

ThinkSNS1阅读 2.4k

confluence7.2.1的部署与迁移---呕心沥血版
Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。 到官网下载最新版本,截止目前...

暗涌阅读 7.8k

C++编译器和链接器的完全指南
C++是一种强类型语言,它的编译和链接是程序开发过程中不可或缺的两个环节。编译器和链接器是两个非常重要的概念。本文将详细介绍C++中的编译器和链接器以及它们的工作原理和使用方法。

小万哥2阅读 1k

封面图
在Linux上查看活跃线程数与连接数
现如今,有两种常见的软件资源几乎成了Java后端程序的标配,即线程池与连接池,但这些池化资源非常的重要,一旦不够用了,就会导致程序阻塞、性能低下,所以有时我们需要看看它们的使用情况,以判断这里是否是瓶颈。

扣钉日记3阅读 1.4k

封面图
Ubuntu 20.04 读写 Windows 10 共享目录(qbit)
本文实验环境中,Windows 操作系统版本为 Windows Server 2016,应该对 Windows 10 和 Windows Server 2019 同样适用

qbit1阅读 6.3k

Ubuntu 20.04 搭建 Elasticsearch 7.x 小集群(qbit)
环境ES 节点硬件:3 台 AWS m5.4xlarge(16 vCPU/64GB 内存)Kibana 硬件:1 台 AWS m5.large(2 vCPU/8GB 内存)操作系统:Ubuntu 20.04 LTSElasticsearch 7.9.3Kibana 7.9.3机器示意图操作系统这里主要讲 EBS ...

qbit阅读 4.1k

身强体健,龙精虎猛的活着。

456 声望
3 粉丝
宣传栏