如何找回ssh公钥

如何找回ssh公钥,第1张

为什么需要找回公钥呢?因为干了一件蠢事,因为ssh登陆服务器懒得输入密码,就准备把本机公钥 ~/ssh/id_rsapub 添加到服务器的授权密钥 ~/ssh/authorized_keys 里去,结果因为是临时随便搜的方法,拷贝的时候用的这个命令: scp ~/ssh/id_rsapub 登录用户名@服务器域名:~/ssh/ ,按下回车我就后悔了,这不是把服务器的公钥覆盖了么。赶紧测试一下是不是这样,比如 Github 一般都是设置ssh key登陆账号的,测试连接:

果然出事了。

意外的简单:

注意这样生成的公钥是没有注释的,一般在后面补上 空格+用户名@主机名 更好。

之前我还在担心无法找回,毕竟记得rsa是个对称的加密算法,能从私钥找回公钥岂不是反向也可?

赶紧补补课,比较重要的点是这几个:

所以,光有公钥或私钥都是不能直接计算出对方的,而rsa加密初始计算完成后只需要保留公钥私钥。但是,本机上在文件 id_rsa 其实保存了私钥公钥和生成密钥时的其他所有数据,用

就能方便地查看,其中就有modulus,publicExponent,privateExponent,prime1,prime2等等,对应于n, e, d, p, q。而且通常来说公钥都是固定的一个数字65537 (0x10001),所以找回公钥非常方便。

个人网银中的CA证书是安全认证工具,能够更好地防范钓鱼网站等欺诈。

以上内容供您参考,业务规定请以实际为准。

如有疑问,欢迎咨询中国银行在线客服。

诚邀您下载使用中国银行手机银行APP或中银跨境GO APP办理相关业务。

公钥密码体制的核心思想是:加密和解密采用不同的密钥。这是公钥密码体制和传统的对称密码体制最大的区别。对于传统对称密码而言,密文的安全性完全依赖于 密钥的保密性,一旦密钥泄漏,将毫无保密性可言。但是公钥密码体制彻底改变了这一状况。在公钥密码体制中,公钥是公开的,只有私钥是需要保密的。知道公钥 和密码算法要推测出私钥在计算上是不可行的。这样,只要私钥是安全的,那么加密就是可信的。

显然,对称密码和公钥密码都需要保证密钥的安全,不同之处在于密钥的管理和分发上面。在对称密码中,必须要有一种可靠的手段将加密密钥(同时也是解密密 钥)告诉给解密方;而在公钥密码体制中,这是不需要的。解密方只需要保证自己的私钥的保密性即可,对于公钥,无论是对加密方而言还是对密码分析者而言都是 公开的,故无需考虑采用可靠的通道进行密码分发。这使得密钥管理和密钥分发的难度大大降低了。

加密和解密:发送方利用接收方的公钥对要发送的明文进行加密,接受方利用自己的

私钥进行解密,其中公钥和私钥匙相对的,任何一个作为公钥,则另一个

就为私钥但是因为非对称加密技术的速度比较慢,所以,一般采用对称

加密技术加密明文,然后用非对称加密技术加密对称密钥,即数字信封 技术

签名和验证:发送方用特殊的hash算法,由明文中产生固定长度的摘要,然后利用

自己的私钥对形成的摘要进行加密,这个过程就叫签名。接受方利用

发送方的公钥解密被加密的摘要得到结果A,然后对明文也进行hash ***

作产生摘要B最后,把A和B作比较。此方式既可以保证发送方的身份不

可抵赖,又可以保证数据在传输过程中不会被篡改。

首先要分清它们的概念:

加密和认证

首先我们需要区分加密和认证这两个基本概念。

加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容, 所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的 权限。其重点在于用户的真实性。两者的侧重点是不同的。

公钥和私钥

其次我们还要了解公钥和私钥的概念和作用。

在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。

公钥私钥的原则:

一个公钥对应一个私钥。

密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。

如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。

如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。

非对称密钥密码的主要应用就是公钥加密和公钥认证,而公钥加密的过程和公钥认证的过程是不一样的,下面我就详细讲解一下两者的区别。

事例说明下:

例如:比如有两个用户Alice和Bob,Alice想把一段明文通过双钥加密的技术发送给Bob,Bob有一对公钥和私钥,那么加密解密的过程如下:

Bob将他的公开密钥传送给Alice。

Alice用Bob的公开密钥加密她的消息,然后传送给Bob。

Bob用他的私人密钥解密Alice的消息。

那么Bob怎么可以辨认Alice是不是真人还是冒充的我们只要和上面的例子方法相反就可以了

Alice用她的私人密钥对文件加密,从而对文件签名。

Alice将签名的文件传送给Bob。

Bob用Alice的公钥解密文件,从而验证签名。

通过例子大家应该有所了解吧!

以下命令来生成密钥对。

$openssl genrsa -out mykeypem 2048

$openssl pkcs8 -topk8 -inform PEM -outform PEM -in mykeypem \

-out private_keypem -nocrypt

这个命令得到的公共密钥。

$ openssl rsa -in mykeypem -pubout -outform DER -out public_keyder

我写了两方法读取私钥和公钥

分别。public PrivateKey getPemPrivateKey(String filename, String algorithm) throws Exception {

File f = new File(filename);

FileInputStream fis = new FileInputStream(f);

DataInputStream dis = new DataInputStream(fis);

byte[] keyBytes = new byte[(int) flength()];

disreadFully(keyBytes);

disclose();

String temp = new String(keyBytes);

String privKeyPEM = tempreplace("-----BEGIN PRIVATE KEY-----\n", "");

privKeyPEM = privKeyPEMreplace("-----END PRIVATE KEY-----", "");

//Systemoutprintln("Private key\n"+privKeyPEM);

Base64 b64 = new Base64();

byte [] decoded = b64decode(privKeyPEM);

PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(decoded);

KeyFactory kf = KeyFactorygetInstance(algorithm);

return kfgeneratePrivate(spec);

}

public PublicKey getPemPublicKey(String filename, String algorithm) throws Exception {

File f = new File(filename);

FileInputStream fis = new FileInputStream(f);

DataInputStream dis = new DataInputStream(fis);

byte[] keyBytes = new byte[(int) flength()];

disreadFully(keyBytes);

disclose();

String temp = new String(keyBytes);

String publicKeyPEM = tempreplace("-----BEGIN PUBLIC KEY-----\n", "");

publicKeyPEM = privKeyPEMreplace("-----END PUBLIC KEY-----", "");

Base64 b64 = new Base64();

byte [] decoded = b64decode(publicKeyPEM);

X509EncodedKeySpec spec =

new X509EncodedKeySpec(decoded);

KeyFactory kf = KeyFactorygetInstance(algorithm);

return kfgeneratePublic(spec);

}

以上就是关于如何找回ssh公钥全部的内容,包括:如何找回ssh公钥、中国银行CA证书有什么用、非对称加密中的公钥和私钥怎么来的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9539987.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存