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

本文详细介绍了公钥和私钥在加密技术中的作用,展示了生成、分享、加密和解密的过程,以及如何在SSH中使用密钥进行安全登录,包括密码认证禁用和密钥对管理策略。
摘要由CSDN通过智能技术生成

公钥及私钥

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

公钥和私钥的基本概念

- 公钥(Public Key):可以公开分享的密钥,用于加密信息或验证数字签名。
- 私钥(Private Key):必须保密的密钥,用于解密信息或创建数字签名。

使用流程

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

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

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

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

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

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

现实生活举例

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

1. 生成密钥对:
   - 你在家里制作了一对密钥,一把是私钥,你妥善保管;一把是公钥,你可以随意分发。

2. 分享公钥:
   - 你把公钥放在一个显眼的地方,比如社交媒体或通过电子邮件发送给朋友,告诉他们这是你的公钥。

3. 朋友加密信息:
   - 你的朋友想要给你发送一封加密的信件,他们使用你的公钥对信件内容进行加密,然后将加密后的信件放入信封,邮寄给你。

4. 解密信息:
   - 收到信件后,你使用你的私钥打开信封,阅读信件内容。

5. 发送回信:
   - 你也想给朋友发送一封加密的回信,你使用你的私钥对信件内容进行加密,然后用朋友的公钥再次加密,确保只有朋友能解密。

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

 

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服务可以使用它来验证身份。通过`ssh-copy-id`命令进行上传:
ssh-copy-id user@hostname

user:远程服务器上的用户名。
hostname:远程服务器的地址。

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

使用密钥进行SSH连接

一旦公钥被添加到远程服务器,就可以使用SSH连接到服务器,而不需要输入密码:
ssh -i ~/.ssh/id_rsa user@hostname

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

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

 

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

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

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

root@metasploitable:~# /etc/init.d/ssh restart            //重启ssh服务
* Restarting OpenBSD Secure Shell server sshd            [ OK ]

 

 

 

  • 36
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在Mac终端上配置私钥进行SSH远程连接服务器,你需要按照以下步骤进行操作: 1. 在终端中执行以下命令来创建一个.ssh目录: ``` mkdir ~/.ssh ``` 2. 将你的密钥对文件移动到.ssh目录下。假设你的密钥对文件名为MyKeyPair.pem,你可以使用以下命令将其移动到.ssh目录下: ``` mv ~/Downloads/MyKeyPair.pem ~/.ssh/MyKeyPair.pem ``` 3. 使用chmod命令来限制私有SSH密钥的权限,确保它不对公开可见: ``` chmod 400 ~/.ssh/MyKeyPair.pem ``` 4. 现在你可以使用密钥连接到远程服务器了。具体的连接命令可以根据你要连接的服务器和使用的密钥而有所不同。 以上是在Mac终端上配置私钥进行SSH远程连接服务器的步骤。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [mac ssh 密钥登陆远程服务器](https://blog.csdn.net/Guzarish/article/details/119163774)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [mac使用ssh密钥连接云服务器](https://blog.csdn.net/m0_46391989/article/details/127460244)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值