【转】ssh 公钥和私钥
来源:互联网 发布:影视会员源码 编辑:程序博客网 时间:2024/05/29 10:07
转载自月光博客 [ http://www.williamlong.info/ ]
加密和认证
首先我们需要区分加密和认证这两个基本概念。
加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。两者的侧重点是不同的。
公钥和私钥
其次我们还要了解公钥和私钥的概念和作用。
在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。
公钥私钥的原则:
- 一个公钥对应一个私钥。
- 密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。
- 如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
- 如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。
非对称密钥密码的主要应用就是公钥加密和公钥认证,而公钥加密的过程和公钥认证的过程是不一样的,下面我就详细讲解一下两者的区别。
基于公开密钥的加密过程
比如有两个用户Alice和Bob,Alice想把一段明文通过双钥加密的技术发送给Bob,Bob有一对公钥和私钥,那么加密解密的过程如下:
- Bob将他的公开密钥传送给Alice。
- Alice用Bob的公开密钥加密她的消息,然后传送给Bob。
- Bob用他的私人密钥解密Alice的消息。
上面的过程可以用下图表示,Alice使用Bob的公钥进行加密,Bob用自己的私钥进行解密。
基于公开密钥的认证过程
身份认证和加密就不同了,主要用户鉴别用户的真伪。这里我们只要能够鉴别一个用户的私钥是正确的,就可以鉴别这个用户的真伪。
还是Alice和Bob这两个用户,Alice想让Bob知道自己是真实的Alice,而不是假冒的,因此Alice只要使用公钥密码学对文件签名发送给Bob,Bob使用Alice的公钥对文件进行解密,如果可以解密成功,则证明Alice的私钥是正确的,因而就完成了对Alice的身份鉴别。整个身份认证的过程如下:
- Alice用她的私人密钥对文件加密,从而对文件签名。
- Alice将签名的文件传送给Bob。
- Bob用Alice的公钥解密文件,从而验证签名。
上面的过程可以用下图表示,Alice使用自己的私钥加密,Bob用Alice的公钥进行解密。
总结
好了,上面就详细讲述了加密、认证、公钥、私钥这四个概念,明白这些概念后,你就应该对“网站的安全登录认证设计”一文所讲述的概念有了更清晰的了解了。
设置SSH公钥认证(不需要每次都输入口令)方法
本地机器(192.168.0.240):
-----------------------------------
$ssh-keygen -t dsa
注意:密码(passphrase)设为空(要求输入密码时直接按"Enter"键)
再把生成的id_dsa.pub(公共密钥保)拷贝到你要访问的机器上去并保存为authorized_keys.
$scp /home/zengxiaolong/.ssh/id_dsa.pub zengxiaolong@192.168.0.239:~/.ssh/authorized_keys
注: 远端机器(239)需要以zengxiaolong身份使用ssh进行过远程登录!
本地机器(192.168.0.240):
-----------------------------------
$ssh zengxiaolong@192.168.0.239
如果没有提示让输入密码,那就OK!
注: 不需输入密码
zengxiaolong ------------> zengxiaolong
192.168.0.240 192.168.0.239
做了以上配置后,在本地机器执行scp的时候按tab,就可以自动补齐你要访问的机器上的目录名(只可惜反应速度慢,需要耐心等待,似乎意义不是很大)
本地机器(192.168.0.240):
-----------------------------------
$ssh-keygen -t dsa
注意:密码(passphrase)设为空(要求输入密码时直接按"Enter"键)
再把生成的id_dsa.pub(公共密钥保)拷贝到你要访问的机器上去并保存为authorized_keys.
$scp /home/zengxiaolong/.ssh/id_dsa.pub zengxiaolong@192.168.0.239:~/.ssh/authorized_keys
注: 远端机器(239)需要以zengxiaolong身份使用ssh进行过远程登录!
本地机器(192.168.0.240):
-----------------------------------
$ssh zengxiaolong@192.168.0.239
如果没有提示让输入密码,那就OK!
注: 不需输入密码
zengxiaolong ------------> zengxiaolong
192.168.0.240 192.168.0.239
做了以上配置后,在本地机器执行scp的时候按tab,就可以自动补齐你要访问的机器上的目录名(只可惜反应速度慢,需要耐心等待,似乎意义不是很大)
0 0
- 【转】ssh 公钥和私钥
- ssh的用法,关于公钥和私钥
- 使用ssh-keygen生成私钥和公钥
- git添加ssh公钥和私钥
- ssh,公钥和私钥,远程复制
- SSH的公钥和私钥的特性
- 使用ssh-keygen生成私钥和公钥
- SSH密钥和公钥生成
- git SSH公钥和https请求
- SSH原理和公钥认证
- 转:使用ssh公钥实现ssh免密码登录
- ssh私钥登录
- ssh公钥认证
- SSH公钥认证
- SSH公钥认证
- ssh公钥登录
- ssh部署公钥
- ssh 公钥认证
- 设计模式:1. 门面模式(Facade)
- 如何在Linux下安装php-memcached扩展
- Java编码问题汇总
- yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss
- android 登录验证,使用HTTP数据传送+jsion数据格式
- 【转】ssh 公钥和私钥
- 经济基础知识二
- win10系统,关机后电源键一直亮着
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- java:IO流学习小结
- Linux 用户名文件
- 如何解决 Java 安全问题?
- android开发 修改状态栏背景颜色和字体颜色(工作日记)
- VB2005 等待或暂停