SSH-Keygen详解

一、生成SSH密钥对

SSH-Keygen是一个基于密钥对的安全连接工具,而密钥对就是由公钥和私钥组成。以下是使用SSH-Keygen生成密钥对的步骤:

$ ssh-keygen

在提示符下输入上述命令并按回车键,会出现如下画面:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

默认情况下,SSH-Keygen会将密钥对存储在默认路径 /root/.ssh/id_rsa 中。如果需要更改默认路径,直接输入新路径即可。

接下来程序会要求输入passphrase,建议使用随机生成的强密码。当然,如果不需要设置passphrase,则可以直接按“Enter”跳过此步骤。如下所示:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

成功设置好密钥对后,会在终端上输出类似以下的信息:

Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
The key's randomart image is:
+---[RSA 2048]----+
|            ...oo|
|           . oo  |
|            .o.. |
|             . o |
|        S .   + .|
|   o   . o . E.  |
|  . o .  o o .   |
|   . o   o. .o   |
|    o..o..  .    |
+-----END RSA KEY-+

二、安全设置

一旦生成密钥对,下一步便是安全地设置文件权限。根据安全原则,应该只允许密钥拥有者有读、写权限。

执行以下命令,即可设置文件权限:

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa
$ chmod 644 ~/.ssh/id_rsa.pub

三、使用SSH密钥对

生成SSH密钥对后,用户需要将公钥文件传输到服务器端,以便将公钥文件添加到授权文件中。具体操作如下:

1、使用以下命令查看公钥:

$ cat ~/.ssh/id_rsa.pub

将公钥文件的内容复制到终端,然后保存。而后,将该公钥文件内容复制到服务器的 ~/.ssh/authorized_keys 文件中。

2、新开终端,在终端中输入如下命令,链接到服务器:

$ ssh user@host

注意: 在上述命令中,user是服务器登录名,host是目标服务器的IP地址或域名。

如果这是第一次连接服务器,会看到类似于以下的内容:

The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is 3f:1b:f4:bd:47:xx:xx:xx:xx:xx:xx:xx:f2:4f:b3:c0.
Are you sure you want to continue connecting (yes/no)?

这时输入“yes”并按回车键。

之后会提示输入密码,如需跳过密码输入可在步骤1中设置passphrase,或在此处直接按回车键。

如果SSH-Keygen生成的公钥文件已添加到授权文件中,连接会顺利完成,不会再次要求输入密码。

四、使用不同的算法来生成密钥对

以 Edward Curve 为例,这种加密方式能提高安全性:

$ ssh-keygen -t ed25519

提示符将会要求设置文件存储路径,还要求设置加密密码等信息。

五、SSH-Keygen常见问题排查

如果ssh-keygen命令无法工作,或者抛出“fatal error”或“command not found”类似的错误信息,用户可以尝试以下排查方法。

1、检查SSH-Keygen是否正在运行

如果一个SSH-Keygen进程正在运行,再次运行可能会引起冲突。通过运行以下命令,用户能够确认进程是否正在执行。

$ ps aux | grep ssh-keygen

2、确认SSH-Keygen是否安装

如果SSH-Keygen未安装,则用户需要先安装OpenSSH Client和Server。可以执行以下命令,检查OpenSSH Server包是否已安装:

$ dpkg-query -W openssh-server

3、确认错误消息是否还包含其他信息

如果错误消息仅提到了“ssh-keygen”,因此它不具有足够的信息来确切地解决问题。将终端窗口中的代码和错误消息复制并进行搜索,并查找解决方案。

4、确认您是否有适当的许可权

如果用户没有访问/tmp或/ var / log目录以及SSH-Keygen命令的其他必备文件的足够权限,则可能无法运行。

六、总结

通过使用SSH-Keygen生成密钥对,可以建立基于密钥的安全连接,提高远程登陆的安全性。用户应该合理设置密钥的存储路径、加密密码等关键因素,同时进行良好的安全设置和SSH-Keygen常见问题排查,以提高安全性并避免可能的错误。

原创文章,作者:CBZSZ,如若转载,请注明出处:https://www.506064.com/n/333732.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
CBZSZCBZSZ
上一篇 2025-02-01 13:34
下一篇 2025-02-01 13:34

相关推荐

  • Python SSH 远程执行命令

    Python SSH 远程执行命令是指在一个服务器上执行远程另一个服务器上命令。如果你需要在本地机器上执行命令,或者在远程机器上执行本地命令,你都可以使用 SSH。在 Python…

    编程 2025-04-29
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • Java BigDecimal 精度详解

    一、基础概念 Java BigDecimal 是一个用于高精度计算的类。普通的 double 或 float 类型只能精确表示有限的数字,而对于需要高精度计算的场景,BigDeci…

    编程 2025-04-25

发表回复

登录后才能评论