对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
1、乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。
2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。
3、乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。
在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。
同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。
非对称加密与对称加密相比,其安全性更好:对称加密的通信双方使用相同的秘钥,如果一方的秘钥遭泄露,那么整个通信就会被破解。而非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。
利用Xshell实现非对称秘钥对登陆linux:
1)生成公钥(Pubic Key)与私钥(Private Key):
点击菜单栏的工具->新建用户密钥生成向导。
虽然SSH2协议中RSA和DSA算法都可以使用,但是为了保险起见,我们一般都选择RSA密钥类型,这样不论你使用的SSH协议是SSH1还是SSH2都可以使用;密钥长度3072以上(位数越长越安全)。
正在生产秘钥,直接下一步即可。
如果希望更安全可言设置秘钥密码,这里自己下一步跳过。
公钥格式默认的SSH2-OpenSSH即可,保存文件备份好。
通过公钥导出对应的私钥文件,保持文件备份好。
xhell生成公钥带pub扩展名,xhell生成的私钥不带扩展名。
2)添加公钥(Pubic Key)到远程Linux服务器;
用户home目录下创建文件夹 .ssh(隐藏目录,chmod命令权限设置700, ),通过filezilla上传公钥文件到用户家目录的.shh文件夹中,并修改名字为authorized_keys(权限设置600),或者.shh文件夹下建立authorized_keys把公钥内容保持其中,保存。
修改sshd_config配置文件
vim /etc/ssh/sshd_config
1
2
3
4
|
PubkeyAuthentication yes
AuthorizedKeysFile %h/. ssh /authorized_keys
RSAAuthentication yes
PasswordAuthentication no
|
重新加载sshd服务:
/etc/init.d/ssh restart
3)客户端载入私钥(Private Key)登录(关键!没有这一步直接登录会提示所选的用户密钥未在远程主机上注册的警告提示):
注:
私钥,在Xshell里也叫用户密钥
公钥,在Xshell里也叫主机密钥
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://qq512430.blog.51cto.com/5955081/1894330