rsa key的使用

rsa key 的使用

登陆云服务器或者用git都需要配置rsa-key,这里说一下使用方法以及我自己踩的一个很蠢的坑

使用的是mac os,Linux也相似

rsa key的配置

参考 : DigitOcean ssh指南

第一步 创建 rsa key

输入指令

ssh-keygen -t rsa

第二步 存储 Keys 和 Passphrase

开始生成之后会遇到以下几个问题

Enter file in which to save the key (/demo/.ssh/id_rsa):

这里可以直接敲回车,生成在你的用户目录下。这里的用户目录是 demo/ 。其实就是在 ~/ 目录下

Enter passphrase (empty for no passphrase):

设置passphase ,可以直接敲回车

这个类似一个密码,每次使用rsakey时候会要求你出入passphase验证

完整的过程如下

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/demo/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /demo/.ssh/id_rsa.
Your public key has been saved in /demo/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
|          .oo.   |
|         .  o.E  |
|        + .  o   |
|     . = = .     |
|      = S = .    |
|     o + = +     |
|      . o + o .  |
|           . o   |
|                 |
+-----------------+

在用户目录下会生成隐藏的 .ssh 文件夹,生成的东西

  • 公钥 .ssh/id_rsa.pub
  • 私钥 .ssh/id_rsa

第三步 复制ssh keys

可以直接将生成的公钥复制走就可以了
cat ~/.ssh/id_rsa.pub

ipv6 使用ssh

ssh -6 root@xxx.xxx.xxx.xx

SSH Permission denied (public key)

原因一(网上说的)

重新add一下ssh key

ssh-add ~/.ssh/id_rsa

原因二(网上说的)

重新配置一遍ssh key

原因三(自己踩的)

ssh 后面直接写ip地址了,应该是
ssh root@xxx.xxx.xxx.xx

### RSA 密钥生成及其在密码学中的应用 RSA 是一种基于公钥加密技术的算法,属于非对称加密体系的一部分。它依赖于大整数分解难题来实现安全性[^1]。以下是关于 RSA 密钥生成以及其用途的一些核心概念: #### 1. 非对称加密基础 非对称加密利用一对密钥——公钥和私钥来进行数据的安全传输。任何通过其中一个密钥加密的数据都只能由对应的另一个密钥解密[^3]。 #### 2. RSA 密钥对生成过程 RSA 密钥对的生成涉及以下几个主要步骤: - **选择两个大素数 \( p \) 和 \( q \)**:这两个素数应尽可能随机且保密。 - **计算乘积 \( n = p \times q \)**:\( n \) 就是模数,在整个过程中起到重要作用。 - **求欧拉函数 \( φ(n) = (p−1)(q−1) \)**:这是为了后续找到合适的公开指数。 - **选取一个小奇数作为公开指数 \( e \)**:满足条件 \( 1 < e < φ(n) \),并且 \( gcd(e, φ(n)) = 1 \)(即互质关系)。 - **计算秘密指数 \( d \)**:使得 \( ed ≡ 1 (\mod φ(n)) \) 成立。可以通过扩展欧几里得算法完成这一操作。 最终得到的结果是一组密钥对: - 公钥为 \( (e, n) \) - 私钥为 \( (d, n) \) 此过程可以借助编程语言如 Python 实现如下所示代码片段: ```python from Crypto.PublicKey import RSA key = RSA.generate(2048) private_key = key.export_key() public_key = key.publickey().export_key() print(private_key.decode()) print(public_key.decode()) ``` 上述脚本使用 PyCryptodome 库自动生成了一对长度为 2048 比特位的 RSA 密钥[^4]。 #### 3. 使用场景分析 当用户向 CA 请求证书时,如果未自行创建 RSA 密钥对,则可能面临缺少相应私钥的情况,进而影响到 P12 文件制作等问题。另外值得注意的是,在实际开发环境中比如 Java 平台下处理 X.509 格式的数字证书时常涉及到 `java.security.cert.X509Certificate` 这样的 API 接口调用[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值