公钥私钥详细讲解,SSH密钥远程连接服务器,代码,命令详解

公钥私钥详细讲解,SSH密钥远程连接服务器,代码,命令详解本文详细介绍了公钥和私钥在加密技术中的作用,展示了生成、分享、加密和解密的过程,以及如何在SSH中使用密钥进行安全登录,包括密码认证禁用和密钥对管理策略

公钥及私钥

公钥和私钥是非对称加密技术中的两个关键组成部分,它们是一对配对的密钥,用于加密和解密信息,确保信息传输的安全性。下面我将详细解释公钥和私钥的概念、用法和使用流程,并用现实生活中的例子来帮助理解。

公钥和私钥的基本概念

使用流程

1. 密钥对生成:
   - 就像你拥有一个邮箱,你需要一把钥匙来打开它。在加密世界中,这把钥匙分为两部分:一把可以复制并随意分发的公钥,和一把只有你知道的私钥。
   - 你使用特定的软件或命令生成一对密钥,比如使用`ssh-keygen`生成SSH密钥对。

2. 公钥分享:
   - 你将公钥分享给需要与你安全通信的人,就像你告诉朋友你的邮箱地址,他们可以给你发送信件。
   - 在现实生活中,这可以通过电子方式(如电子邮件)或物理方式(如写在纸上)进行。

3. 信息加密:
   - 当别人想要给你发送加密信息时,他们使用你的公钥来加密信息,确保只有拥有对应私钥的你能够解密。
   - 类似地,如果你收到一封加密的信件,你需要用你的私钥(邮箱钥匙)来打开它。

4. 信息解密:
   - 你使用私钥解密收到的信息,恢复原始内容。
   - 就像你用钥匙打开邮箱,取出里面的信件。

5. 数字签名:
   - 为了证明信息确实是你发送的,你可以使用私钥对信息进行数字签名。
   - 类似地,你给信件签名,收信人通过你的公钥验证签名,就像验证信件上的签名是否为你的笔迹。

6. 签名验证:
   - 收信人使用你的公钥来验证数字签名,确认信息的真实性和完整性。
   - 就像收信人通过对比签名和已知的你的笔迹来确认信件确实是你写的。

现实生活举例

假设你要寄送一封重要的信件给朋友,而这封信件包含敏感信息。你可以采取以下步骤:

通过这个过程,你和朋友能够安全地交换信息,即使信件在邮寄过程中被拦截,没有正确的私钥,拦截者也无法阅读信件内容。这就是公钥和私钥在现实生活中的一个类比例子。

 

SSH密钥访问服务器

使用cmd生成密钥并连接服务器

1.win+r输入cmd打开终端

2.输入ssh-keygen -N passwd        生成密钥并指定私钥密码

a9c6e29c0a0b4c63868c079653b814e5.png

查看密钥路径,上传公钥到目标服务器指定路径并进行ssh密钥登录 

cfe99ddb201a487ba2f2ce295a23904b.png

使用 MobaXterm本地终端生成密钥并连接服务器

删除现有密钥对防止干扰,并生成新的密钥对

58df4cf365154df980dbf575a58d779d.png

 验证生成成功并上传到目标主机

4e9037cbd59f4699b04a06cca7bb3e51.png

 使用密钥进行访问

私钥地址:C:\Users\Administrator\OneDrive\文档\MobaXterm\home\.ssh\id_rsa

根据moba情况进行调节

32022947653e454b8e068950d148b0b6.png

命令解析

`ssh-keygen`是一个用于生成、管理和转换SSH公钥/私钥对的命令行工具

基本语法

ssh-keygen [options] [file]

ssh-keygen:命令本身。
[options]:可选参数,用于指定不同的配置和行为。
[file]:指定生成的密钥文件名。如果不指定,默认生成两个文件:一个私钥和一个公钥。

常用选项

-A:生成所有可能的主机密钥对。
-b bits:指定密钥的位数,默认是2048位。
-C "comment"`:为密钥添加注释,通常用于标识密钥的用途或所有者。
-E:指定椭圆曲线加密算法。
-f:指定密钥文件的保存路径。
-N:为密钥设置密码。
-t:指定密钥类型,如`rsa`、`dsa`、`ecdsa`、`ed25519`等。
-y:从私钥中提取公钥。

代码演示

生成密钥对

1. 打开终端

2. 运行ssh-keygen命令:输入ssh-keygen命令并按回车键

ssh-keygen -t rsa -b 4096 -C "Your Name"

这个命令会生成一个4096位的RSA密钥对,并添加一个注释"Your Name"。

3. 指定密钥保存位置:系统会提示输入文件名来保存新的密钥。如果不输入任何内容并按回车键,密钥将被保存在默认位置`~/.ssh/id_rsa(私钥)和`~/.ssh/id_rsa.pub(公钥)。

Enter file in which to save the key:

4. 设置密钥密码:系统会询问是否要为密钥设置密码。这是可选的,建议设置以增加安全性。

Enter passphrase (empty for no passphrase):

将公钥上传到服务器

这个命令会自动将公钥复制到远程服务器的`~/.ssh/authorized_keys`文件中。

使用密钥进行SSH连接

-i:指定私钥文件的路径。
user:远程服务器上的用户名。
hostname:远程服务器的地址。

如果在生成密钥时设置了密码,系统会提示输入。

 

修改ssh配置文件禁止用户使用密码进行登录

root@metasploitable:~# vim /etc/ssh/sshd_config

50    PasswordAuthentication no                                  //禁止SSH使用密码登录

 

 

 

今天的文章 公钥私钥详细讲解,SSH密钥远程连接服务器,代码,命令详解分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-10-19 10:30
下一篇 2024-10-19 10:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/4017.html