linux设置无密码登录

简述

默认情况下, ssh使用密码登录方式, 这种方式由很多缺点, 例如明文密码很容易被不法分子获取, 如果存在大量机器, 密码的管理也是一个很大的问题, 并且每次登录都需要手动输入密码. 不管是对于操作者还是管理者, 都是很麻烦的一件事. 而使用密钥登录就是一个更好的解决方案

加密算法

目前加密算法大致有两种: 一种是对称加密, 另一种是非对称加密. 对称加密顾名思义就是说通信双方使用的密钥是一样的, 优点就是加密速度快, 缺点也很明显, 当某端密钥被破解, 那另一端的加密数据也会被破解.

另一种非对称加密的算法安全系数就大大增强, 非对称加密算法分别对应的有公钥, 私钥, 两个密钥. 私钥必须私密保存, 不能泄露; 公钥则是公开的, 可以对外发送. 通常使用公钥加密数据, 使用私钥进行解密, 并且因为非对称加密的公私钥都是成对的, 所以就算密文和公钥都被不法分子获取, 也没办法解开密文, 而私钥不仅仅用来解密数据, 在通信过程中, 通常会使用私钥对数据签名, 然后使用公钥验签.

在一个网络请求中, 通常会先进行公钥验签确认对方身份, 验签通过后才会使用密钥解开密文, 进行通信.

生成公私钥对

在ssh登录中, 就是使用非对称加密算法生成的密钥进行的认证

下面的命令会使用rsa算法生成一个密钥对

ssh-keygen -t rsa 

ssh-keygen的配置项, 主要有一下这些

  • -b 参数执行密钥的二进制位数, 这个参数越大, 密钥就越难被破解, 但是相对应的进行加解密过程的计算量就会越大
  • -C 参数可以为密钥文件执行注释, 通常被设定为个人邮箱, 例如: ssh-keygen -t rsa  -C zhangsan@qq.com
  • -f 参数执行生成的私钥文件, 如果没有特殊需要, 并不需要指定
  • -F 参数检查某个主机名是否存在于known_hosts中
  • -N 参数用于指定私钥的密码, 如果设置了密码, 入侵者即时拿到了私钥, 还是需要密钥才能破解, 这样更加安全, 但是管理和使用成本也会增加, 看个人情况使用
  • -P 参数用于重新指定私钥的密码
  • -R 参数将执行的主机公钥指纹移出known_hosts文件
  • -t 参数指定生成密钥的算法, 常使用的加密算法为rsa和dsa

配置密钥登录

openssh规定, 用户的公钥必须保存在服务器的~/.ssh/authorized_keys文件. 你要以哪个用户登录, 就保存在哪个用户的主目录下. 当存在多个公钥时, 每个公钥占一行, 如果文件不存在, 需要手动创建

设置权限

chmod 644 ~/.ssh/authorized_keys
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值