1. SSH密钥管理:生成、保存与使用

作者:搬砖的石头2023.05.22 10:33浏览量:162

简介:Linux生成ssh密钥免密登录

Linux生成ssh密钥免密登录

在Linux系统中,SSH是一种安全的远程访问协议,允许用户在不安全的网络上安全地连接到远程服务器。为了保护远程服务器的安全,通常会使用SSH密钥进行身份验证。本文将介绍如何生成SSH密钥、如何实现免密登录、如何允许/禁止密码登录、以及如何允许/禁止root远程登录。

一、生成SSH密钥

  1. 创建一个新的ssh密钥

首先,创建一个新的ssh密钥。可以使用ssh-keygen命令来生成一个新的ssh密钥。在终端中输入以下命令:

  1. ssh-keygen -t rsa

这将生成一个rsa密钥对,可以用于远程连接。在生成密钥对时,需要指定一个名称和私钥的保存位置。例如,要生成一个名为myid的私钥,并将其保存在/home/myuser/.ssh目录下,可以输入以下命令:

  1. ssh-keygen -n myid -f /home/myuser/.ssh/myid.pub

其中,-n参数表示私钥类型为硬编码(默认值为强制),-f参数表示指定文件为硬编码模式(直接编写公钥到文件中)。在执行命令后,系统会要求提供公钥证书和/或强密码等信息,输入即可。生成的私钥将被保存在~/.ssh目录下。

  1. 保存SSH密钥

生成ssh密钥后,需要将其保存在本地电脑上,以便在远程服务器上使用。可以使用以下命令将私钥保存到~/.ssh目录下:

  1. cat ~/.ssh/myid.pub >> ~/.ssh/authorized_keys

其中,~/.ssh/authorized_keys是一个文本文件,用于存储已经允许远程连接的公钥列表。现在,所有已经通过身份验证的用户都可以通过SSH连接到此远程服务器了。需要注意的是,通过ssh-copy-id命令也可以复制别人的公钥到本地电脑上,然后将其添加到authorized_keys文件中。

二、免密登录

  1. 允许/禁止密码登录

为了实现免密登录,需要将SSH登录方式设置为明文方式。可以使用sshpass命令来实现。首先,需要在远程服务器上启用sshpass服务。在终端中输入以下命令:

  1. sudo systemctl start sshpass

如果无法连接服务器时需要恢复后输入之前复制代码类型: