公钥 密钥

公钥算法一起使用的密钥对的秘密一半。
1,公钥和私钥成对出现
2,公开的密钥公钥,只有自己知道的叫私钥
3,用公钥加密的数据只有对应的私钥可以解密
4,用私钥加密的数据只有对应的公钥可以解密
5,如果可以用公钥解密,则必然是对应的私钥加的密
6,如果可以用私钥解密,则必然是对应的公钥加的密
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。
      使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:
      1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。
      2. 必须保证是我发送的邮件,不是别人冒充我的。
      要达到这样的目标必须发送邮件的两人都有公钥和私钥。
      公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上 密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能 用公钥解密。
      比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。
      首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。
      其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。
      当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,否则普罗大众都能解开加密的讯息,就是去了资料的保密性。验证方面则是使用签 验章的机制,A传资料给大家时,会以自己的私钥做签章,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了。


   
数字证书的原理

   数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时 设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使 用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密. 在公开密钥密码体制中,常用的一种是RSA体制。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;
(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。

<think>好的,用户想了解如何生成使用SSH公钥与私钥。我需要先回顾之前提供的引用内容,确保信息准确。首先,引用1提到ssh-keygen是生成密钥对的工具,用于SSH密钥认证,替代密码登录。引用2给出了具体的命令示例,使用rsa算法4096位长度,并添加注释。引用3则涉及将公钥配置到Git平台如GitHub或GitLab的步骤。 接下来,我需要将这些信息整合成一个清晰的步骤指南。用户可能需要从生成密钥对开始,到配置公钥到服务器或Git平台,以及使用私钥进行认证。要注意区分不同操作系统的路径差异,比如Linux/macOSWindows的区别。另外,权限设置也很重要,比如私钥的600权限,避免被他人访问。 可能还需要补充一些常见问题,例如密钥对的存放位置、是否需要密码保护、如何测试连接等。用户可能关心安全性问题,比如使用强加密算法(ed25519比rsa更推荐),以及处理多密钥对的情况。 确保按照用户的要求,行内公式代码块正确使用$...$```格式。同时,生成的相关问题要围绕SSH密钥的使用管理,覆盖生成、配置、安全、多账户处理等方面,帮助用户进一步探索。</think>### 如何生成使用SSH公钥与私钥 #### 一、生成SSH密钥对 1. **打开终端**(Linux/macOS)或 **PowerShell/CMD**(Windows) 2. **执行生成命令**: ```bash ssh-keygen -t ed25519 -C "[email protected]" ``` - `-t ed25519`:指定加密算法(推荐ed25519,比RSA更安全高效)[^2] - `-C "注释"`:添加标识信息(通常为邮箱) - 若系统不支持ed25519,改用`-t rsa -b 4096`生成RSA密钥[^2] 3. **选择保存路径**: ```bash Enter file in which to save the key (/home/user/.ssh/id_ed25519): ``` - 默认路径为`~/.ssh/`(Linux/macOS)或`C:\Users\用户\.ssh\`(Windows) - 可自定义路径(如多账户场景) 4. **设置密码保护**(可选): ```bash Enter passphrase (empty for no passphrase): ``` - 密码会增加安全性,但每次使用密钥需输入 #### 二、密钥文件说明 1. **私钥文件**: - 默认名称:`id_ed25519` - 权限要求:必须设置为`600`(仅用户可读写) ```bash chmod 600 ~/.ssh/id_ed25519 ``` 2. **公钥文件**: - 默认名称:`id_ed25519.pub` - 内容格式:`ssh-ed25519 AAAAB3NzaC1y... [email protected]` #### 三、配置公钥到目标服务器 1. **上传公钥到SSH服务器**: ```bash ssh-copy-id -i ~/.ssh/id_ed25519.pub user@hostname ``` - 自动将公钥追加到服务器的`~/.ssh/authorized_keys`文件 2. **手动配置**(若无ssh-copy-id): - 复制公钥内容 - 登录服务器后执行: ```bash echo "公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys ``` #### 四、使用密钥认证 1. **SSH连接命令**: ```bash ssh -i ~/.ssh/id_ed25519 user@hostname ``` - 若使用默认密钥(`id_ed25519`),可省略`-i`参数 2. **Git配置示例**: - 将公钥添加到GitHub/GitLab: 1. 访问平台SSH设置页(如GitHub: Settings → SSH and GPG keys)[^3] 2. 粘贴`id_ed25519.pub`内容 - 测试连接: ```bash ssh -T [email protected] ``` #### 五、高级管理技巧 1. **多密钥对场景**: - 创建`~/.ssh/config`文件管理不同主机: ```bash Host github.com HostName github.com User git IdentityFile ~/.ssh/github_key ``` 2. **密码修改**: ```bash ssh-keygen -p -f ~/.ssh/id_ed25519 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值