如何通过SSH和基于密钥的身份验证以无密码方式登录Linux?

Ssh提供到远程系统的安全远程连接。它实际上是一种协议,用于通过命令行远程管理Linux和网络系统。Ssh提供了许多额外的特性,这使得它可以用于不同的用途。例如,我们可以通过ssh以安全的方式将文件复制到远程和本地系统。为了使事情简单明了,我们可以对ssh协议使用基于密钥的无密码身份验证。

null

为客户端列出本地系统上的公钥和私钥

在某些情况下,可能存在公钥和私钥。ssh用户公钥和私钥的默认位置是 /home/user/.ssh . 因此,我们将列出目录和键是否存在。我们将使用 ls 这个命令。

$ ls -l /home/ismail/.ssh/
List Public and Private Keys On Local system For Client
为客户端列出本地系统上的公钥和私钥

我们可以看到,在这个示例中没有ssh公钥或私钥。

在客户端上创建公钥和私钥

第一步是在客户机系统上创建公钥和私钥对,公钥复制到远程系统,私钥保存在本地系统上。私钥只能由本地系统用户知道。我们将使用 ssh-keygen 命令。此命令将创建名为 id_rsa.pub id_rsa .

$ ssh-keygen
Create Public and Private Keys On Client
在客户端上创建公钥和私钥

将公钥复制到ssh Copy id为的服务器

我们将使用 ssh-copy-id 命令将ssh公钥复制到远程系统。我们将提供远程系统的IP地址,如果远程用户不同于本地用户的用户名。在本例中,我们使用当前用户。

$ ssh-copy-id 192.168.43.129
Copy Public Key to the Server with ssh-copy-id
将公钥复制到ssh Copy id为的服务器

正如我们从输出1中看到的,键被添加到远程系统中。

相关文章: 如何在Ubuntu、Debian、Kali、Mint中安装、启动、停止、重启OpenSSH?

使用ssh echo将公钥复制到服务器

我们有另一种方法将密钥复制到远程 ssh-copy-id . 如前所述 ssh 提供不同的功能,使系统管理员的生活更轻松。我们可以在没有交互式shell的远程系统上运行命令。我们将此功能用于 echo 将密钥复制到远程系统的命令。

$ cat .ssh/id_rsa.pub | ssh 192.168.43.129  'cat >> .ssh/authorized_keys'

无密码连接

现在我们已经完成了所有步骤。我们可以简单地通过ssh连接远程系统,只需运行以下命令。

$ ssh 192.168.43.129
Connect with Passwordless
无密码连接
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享