日期:2014年11月6日 17:13 星期四 农历 甲午 马年 闰九月十四
早两天小芳同学突然问我,如何实现scp的自动化呢?因为在scp的时候总会提示用户输入远程主机的密码,使得scp的自动化很麻烦。凭着隐约的一点经验,我貌似感觉到有秘钥登陆这种机制存在,于是有了彻底了解一下秘钥机制的动力。
经过学习了解到秘钥主要分为两种,一种是对称秘钥,例如说抗战片中的电报密码,通信双方加密解密都是用的同样一种加密解密方法,另外一种是非对称秘钥。非对称秘钥包含一个公钥与一个私钥,其中一把密钥加密,只能对另一个密钥来解密。
公钥是对外发布的,想给私钥持有者发信息的人都可以取得公钥,用公钥加密后,发送给私钥持有者,即使被拦截或者窃取,没有私钥的攻击者也无法获得加密信息,可以保证信息的安全传输。
先用私钥加密,再用公钥解密,这样可以完成对私钥持有者的身份认证。因为公钥只能解开私钥加密后的信息。下面即将讲解的scp、tftp登陆的例子就是应用了私钥加密公钥解密的身份认证的原理。
如果本地主机要与远程主机采用密码的方式通信,例如说scp、tftp等,如果远程主机上没有保存本地主机的公钥,那么只能采用密码验证的方式登陆。如果想要免密码登陆,就必须首先让远程主机信任自己,即把本地主机的公钥添加到远程主机的信任列表中。
秘钥通信的流程如下:(以scp通信为例)
(1)当本地主机发起向远程主机发起一个scp通信会话
(2)远程主机会检查一下本地是否有保存对端的公钥,如果有,会向本地主机随机发送一段文字
(3)本地主机接收到文字后用私钥对这段文字进行加密,并把加密后的文字发送给远程主机
(4)远程主机接收到加密后的文字后,用本地主机事先保存在远程主机上的公钥进行解密,解密后的文字如何与第二步中发送的一致,则认为对端是可信的。
回归主题,下面以实际例子讲解一下如何解决王芳同学的问题。
(1)在本地主机生成密钥
[test1@test1 Tools]$ ssh-keygen -b 1024 -t rsa
早两天小芳同学突然问我,如何实现scp的自动化呢?因为在scp的时候总会提示用户输入远程主机的密码,使得scp的自动化很麻烦。凭着隐约的一点经验,我貌似感觉到有秘钥登陆这种机制存在,于是有了彻底了解一下秘钥机制的动力。
经过学习了解到秘钥主要分为两种,一种是对称秘钥,例如说抗战片中的电报密码,通信双方加密解密都是用的同样一种加密解密方法,另外一种是非对称秘钥。非对称秘钥包含一个公钥与一个私钥,其中一把密钥加密,只能对另一个密钥来解密。
公钥是对外发布的,想给私钥持有者发信息的人都可以取得公钥,用公钥加密后,发送给私钥持有者,即使被拦截或者窃取,没有私钥的攻击者也无法获得加密信息,可以保证信息的安全传输。
先用私钥加密,再用公钥解密,这样可以完成对私钥持有者的身份认证。因为公钥只能解开私钥加密后的信息。下面即将讲解的scp、tftp登陆的例子就是应用了私钥加密公钥解密的身份认证的原理。
如果本地主机要与远程主机采用密码的方式通信,例如说scp、tftp等,如果远程主机上没有保存本地主机的公钥,那么只能采用密码验证的方式登陆。如果想要免密码登陆,就必须首先让远程主机信任自己,即把本地主机的公钥添加到远程主机的信任列表中。
秘钥通信的流程如下:(以scp通信为例)
(1)当本地主机发起向远程主机发起一个scp通信会话
(2)远程主机会检查一下本地是否有保存对端的公钥,如果有,会向本地主机随机发送一段文字
(3)本地主机接收到文字后用私钥对这段文字进行加密,并把加密后的文字发送给远程主机
(4)远程主机接收到加密后的文字后,用本地主机事先保存在远程主机上的公钥进行解密,解密后的文字如何与第二步中发送的一致,则认为对端是可信的。
回归主题,下面以实际例子讲解一下如何解决王芳同学的问题。
(1)在本地主机生成密钥
[test1@test1 Tools]$ ssh-keygen -b 1024 -t rsa