公钥用来给数据加密,用公钥加密的数据只能使用私钥解密
用来解密公钥加密的数据。
对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得
使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。
数据接收端,拿到传输文本,但是需要确认该文本是否就是发送发出的内容,中途是否曾经被篡改。因此拿自己持有的公钥对签名进行解密(密钥对中的一种密钥加密的数据必定能使用另一种密钥解密。),得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。
是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。
公钥登录是为了解决每次登录服务器都要输入密码的问题,流行使用RSA加密方案,主要流程包含:
1、客户端生成RSA公钥和私钥
2、客户端将自己的公钥存放到服务器
3、客户端请求连接服务器,服务器将一个随机字符串加密后发送给客户端
4、客户端根据自己的私钥解密这个随机字符串之后再发送给服务器
5、服务器接受到字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。
进入用户目录下.ssh目录:
id_rsa:私钥文件
id_rsa.pub:公钥文件
authorized_keys: 保存其他公钥的的文件
known_hosts: 已经建立过连接的服务器信息,可以清空。
1.执行命令:
此时会重新生成id_rsa私钥文件和id_rsa.pub公钥文件
用户将公钥发送给其他服务器,其他服务器将接受的公钥保存在authorized_keys里面。持有私钥的用户就可以登录服务器(authorized_keys存放自己的公钥,用户便可以使用私钥从其他的地方登录服务器)。
2.将公钥导入到vps
3.修改SSHD的配置文件/etc/ssh/sshd_config
4.重启SSH后进行测试
ssh如何利用RSA公钥进行远程登录验证1、本地机器生成密钥
$ssh-keygen -t
rsa
生成基于ssh协议第二版密钥,如果还是用rsa1,该升级了。
2、复制生成的id_rsa.pub公钥文件到远程服务器,简单的用:
$scp
id_rsa.pub bsduser@192.168.1.188:mykey.pub
3、密码登陆远程服务器:
$ssh 192.168.1.188
-l bsduser
这里注意不是cp,而是cat;不是">",而是">>"的操作:
%cat mykey.pub
>>$HOME/.ssh/authorized_keys
4、重启sshd
#/etc/rc.d/sshd
restart
5、此时进行登录测试:
$ssh
bsduser@192.168.1.188
成功,则可以不用输入繁琐和易泄露的密码。但是条件是你要保护好自己的密钥文件信息。
https在建立通信时首先会采用非对称加密的方式传输数据(这里的传输数据一般是随机生成的key 这个key用于后续的对称加密)
服务端会生成一对秘钥, 公钥和私钥
公钥交给客户端 私钥留给服务端自己
客户端在拿到公钥后 如何确保拿到的公钥就是想要访问的服务端的公钥呢?
这时就需要有一个公认的权威机构来证明, 公钥是来自指定的服务端的公钥
认证机构会生成一对秘钥, 公钥和私钥
公钥证书的生成包括了两部分内容
其中数字签名的生成过程是:
服务器将公钥证书发送给客户端 客户端验证公钥证书 从而确保公钥的合法性
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)