非对称加密 秘钥登录
发布日期:2021-11-09 11:16:26 浏览次数:35 分类:技术文章

本文共 2462 字,大约阅读时间需要 8 分钟。

非对称加密简介:
对称加密算法在加密和解密时使用的是同一个秘钥;
而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是
公开密钥(public key,简称公钥)
私有密钥(private key,简称私钥)
常用的DES、三 重DES、AES等都属于对称加密;
        RSA, EI Gamal, ECC, Knapsack, etc
都属于非对称加密;
       与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。
公开密钥与私有密钥是一对。
       如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;
       如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
       因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
简单理解:
                加密             公钥加密——私钥解密
               
数字证书
      私钥签名——公钥验证
非对称加密 秘钥登录 - 朝鲜程序员 - 朝鲜程序员的博客
 
使用秘钥登录linux:
一、在windows上使用 SSH Secure Shell Client   用密钥认证登录linux服务器
      1.在
SSH Secure Shell Client
 
 上选择  Edit->settings->Keys
     2. 点击“Generate New” 可选择 rsa dsa两种加密方式
     3. 输入生成Key的文件名和注释,打算使用空密码登录则Passphrase中不输入密码
     4. 完成
     5. 登录SSH Server,进入/root目录    
            再到Edit->Settings->key下,选择”upload”刚才的秘钥
           
这样就把公钥上传到服务器了 z
     6. 因为SSH Server是Linux,而SSH Secure Shell Client客户端上Windows,所以密钥需要进行格式转换
         并把公钥追加到
authorized_keys中
       cd $HOME/.ssh/
       ssh-keygen -i -f xxx.pub >> 
authorized_keys
     7. 修改sshd_config
     sudo vi /etc/ssh/sshd_config
     让这几项生效:
     
RSAAuthentication yes                         
设置是否使用RSA算法进行安全验证
     PubkeyAuthentication yes                    
设置是否使用公钥进行安全验证
     AuthorizedKeysFile %h/.ssh/authorized_keys    
这里确定公钥的位置
     可选择关闭输入pasword认证:  
     PasswordAuthentication no
     8. 重启sshd服务 sudo service sshd restart
     9. 连接即可,自己生成的keys在c:\Users\<username>\AppData\Roaming\SSH\UserKeys中
二、服务器之间配置免密  秘钥登陆
1.生成公钥私钥
                 
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa                    指定秘钥类型 目录 名字
Generating public/private rsa key pair.
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in
/home/hadoop/.ssh/id_rsa.      私钥
Your public key has been saved in
/home/hadoop/.ssh/id_rsa.pub.   公钥
The key fingerprint is:
38:95:cf:a6:78:37:ea:77:3a:20:a1:13:db:3f:2a:72 hadoop@master.hadoop
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|         .       |
|        o        |
|    . .o o       |
|     =o.S +      |
|    + oo.o       |
|     ..oo.o      |
|  . E  .ooo..    |
|   o ..ooo.+     |
+-----------------+
2.将公钥拷贝到
/home/hadoop/.ssh/authorized_key   中
      #cat /home/hadoop/.ssh/id_rsa.pub>>/home/hadoop/.ssh/authorized_key
    设定权限
      #chmod 600 ~/.ssh/authorized_key 
        
3.修改stricthostkeychecking  参数
     StrictHostKeyChecking"如果设为"yes",ssh将不会自动把计算机的密匙加入"$HOME/.ssh/known_hosts"文件,且一旦计算机的密匙发生了变化,就拒绝连接。
       可以修改全局变量  vi /etc/ssh/ssh_config
       在这里设置   
StrictHostKeyChecking no
       也可以只修改用户的ssh环境
       新建  ~/.ssh/config  
      Host 0.0.0.0
      StrictHostKeyChecking no
最后改下权限  
    chmod 600 
~/.ssh/config  

总结注意事项

1、文件和目录的权限千万别设置成chmod 777.这个权限太大了,不安全,数字签名也不支持。我开始图省事就这么干了

2、生成的rsa/dsa签名的公钥是给对方机器使用的。这个公钥内容还要拷贝到authorized_keys

3、linux之间的访问直接 ssh 机器ip

4、某个机器A生成自己的RSA或者DSA的数字签名,将公钥给目标机器B,然后B接收后设定相关权限(公钥和authorized_keys权限),这个B就能 被生成数字签名的机器A无密码访问了

转载地址:https://blog.csdn.net/zonghua521/article/details/78198163 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:hadoop local、伪分布 模式
下一篇:Sudo

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月29日 05时58分23秒