如何在Linux中为无密码和基于公钥的身份验证创建和设置SSH密钥?

Ssh是一种旨在确保主机之间网络连接安全的协议。Ssh实际上是Linux和相关操作系统的标准。Ssh加密双方之间的连接。Ssh提供主机和服务器之间的终端访问。要获得终端,需要一个身份验证过程。身份验证过程通常基于密码,但基于密码的身份验证有一些注意事项。暴力攻击可以猜测密码并允许访问服务器。为了使事情更安全,可以使用基于密钥的身份验证。在登录或批处理操作中使用它更安全、更实用。

正确版!God's authentication 认证!祈祷天使吊坠
| 月销量5件
优惠价2580元
原价¥2580

淘口令:

¥BHW1XqnoP5s¥
 

创建密钥对

我们将创建密钥对。我们可能会问自己为什么要配对。一把钥匙不够吗?在非对称密码学中,使用不同的密钥对来完成彼此。其中一个密钥被命名为public,它为公众所知。一个密钥名为private,只有所有者知道。

$ ssh-keygen -t rsa
Creating Key Pairs
创建密钥对

在RSA公钥和私钥生成过程中,我们将被问到如下一些问题。我们可以回答所有的问题,跳过所有的问题 Enter 钥匙。

  • “输入要在其中保存密钥的文件(/home/ismail/.ssh/idu rsa):”问题用于指定默认名称为’idu rsa’的rsa密钥对以及`.ssh`目录下当前用户主路径所在的路径。
  • 如果已存在具有指定路径和名称的密钥并接受覆盖,将询问“是否覆盖?”。如果我们不使用旧的RSA密钥,我们可以用“y”答案覆盖。
  • “输入密码短语(空表示没有密码短语)”问题用于通过加密保护创建的公钥和私钥,其中我们必须指定密码短语
  • “输入密码短语”行用于检查以前输入的密码短语以防止出错

相关文章: 使用Sysctl命令列出并更改内核配置变量

我们创建了一个基于密钥对的RSA算法。我们的密钥对是2048位。因此,只要密钥的大小越长,它就越安全。我们可以用密码短语来保护我们的密钥对,但这在大多数情况下并不实用。默认情况下,我们的密钥对位于用户的home directories.ssh文件中。请记住,在使用ssh配置时,我们需要root权限。获取root权限的最佳方法是使用以下命令。

$ sudo su

向远程服务器添加用户SSH密钥

现在我们有了一把钥匙。我们将使用 ssh-copy-id 命令指定要复制密钥的用户和服务器主机名或IP地址。在本例中,我们将复制已经为用户创建的SSH密钥 ismail 192.168.142.150 .

$ ssh-copy-id [email protected]
Adding User SSH Key to Remote Server
向远程服务器添加用户SSH密钥

我们可以看到,在SSH密钥部署期间,一些信息会像源密钥一样打印到屏幕上,这些源密钥将被安装到远程系统。还有多少钥匙可以安装?在安装结束时,“添加的键数”在本例中为1。然后打印SSH命令,用指定的用户无密码登录到远程系统,我们可以在这里进行如下检查。

$ ssh [email protected]
Adding User SSH Key to Remote Server
向远程服务器添加用户SSH密钥

为SSH配置禁用基于密码的身份验证

完成这些步骤后,我们可以禁用基于密码的身份验证 ssh服务器。

$ vim /etc/ssh/sshd_config

正常开放 sshdu配置 文件和更改 密码验证 权限登录 像下面这样的线条

PasswordAuthentication noPermitRootLogin without-password

应用SSH服务器配置

然后重新启动 SSH服务器 以加载新配置。

$ sudo systemctl restart ssh

检查SSH服务器状态

检查SSH是否与 系统控制 命令如下。我们将看到SSH在 Active 绿色线条。如果出现错误,您可以恢复到原始配置,然后重新启动SSH服务,如前所述。

$ systemctl status ssh
Check SSH Service Status
检查SSH服务状态

如何在Linux中为无密码和基于公钥的身份验证创建和设置SSH密钥? 信息图表

How To Create and Setup SSH Keys For Passwordless and Public Key Based Authentication In Linux? Infographic
如何在Linux中为无密码和基于公钥的身份验证创建和设置SSH密钥?信息图表

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0
分享