当前位置: 首页 > Linux

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

时间:2023-04-07 01:38:05 Linux

SSH(SecureShell)密钥为我们提供了一种安全的方式来登录Linux和UNIX。当我们使用SSH密钥访问Linux系统时,也称为无密码SSH身份验证。在本文中,我们将学习如何在Linux中使用密钥设置无密码SSH身份验证。实验准备客户主机(RockyLinux)--SSH客户端--192.168.1.135远程主机(Ubuntu20.04)--192.168.1.130(1)在客户端主机上使用SSH-keygen命令生成SSHkey登录跳转主机并执行ssh-keyen命令,使用rsa算法生成公私钥对$ssh-keygen-trsa该命令会提示你输入公钥和私钥的路径,如果你想保持默认路径,按回车,当提示设置密码时,按回车键ssh-keygen命令的输出如下注意:ssh-keygen命令生成的默认密钥大小为2048位。如果要更改密钥的大小,则使用-b选项后跟大小(以位为单位),示例如下所示$ssh-keygen-trsa-b4096(2)将用户的公钥复制到一个远程linux系统使用ssh-copy-id命令将用户公钥复制到远程linux系统用户授权密钥文件中。Syntax:ssh-copy-id@$ssh-copy-idkadmin@192.168.1.130(3)测试无密码SSH认证现在尝试从跳转主机系统远程ssh$sshkadmin@192.168.1.130没问题,上面的输出确认我们可以在不指定任何密码的情况下登录远程系统。注意:密钥交换和测试完成后,我们应该为root和其他用户禁用基于密码的身份验证。为此,编辑/etc/ssh/sshd_config文件并设置以下参数:PermitRootLoginnoPubkeyAuthenticationyesPasswordAuthenticationnoUsePAMyes保存并退出文件并使用以下systemctl命令重新启动ssh服务$sudosystemctlrestartsshd另一个重点是远程用户,在我们的例子中,kadmin应该是sudo组的一部分并具有管理权限,因此它可以执行管理任务。以上就是这篇文章的全部内容,希望您觉得它有用,请在下面的评论部分写下您的问题和反馈。我的开源项目课程-tencent-cloud(酷瓜云课堂-gitee仓库)course-tencent-cloud(酷瓜云课堂-github仓库)