zoukankan      html  css  js  c++  java
  • CentOS7.4配置SSH登录密码与密钥身份验证踩坑

    简单记录,自用CentOS7.4虚拟机与ALiYunVPS,在配置ssh登录身份验证时碰到的问题。


     阿里云VPS:因为在重置磁盘时选择了密钥对的身份验证方式,因此VPS中的CentOS7.4中的 /etc/ssh/sshd_config 文件中,在初始化时就被添加了一行禁止密码登录的配置:

    1
    PasswordAuthentication no

    使用vim编辑配置文件将其改为:

    1
    PasswordAuthentication yes

    即可使用密码进行ssh登录了。


     在查找相关资料的过程中,无意看了一些如何配置启用密钥对进行SSH登录的方法,几乎全部都是说修改 /etc/ssh/sshd_config 文件,找到其中这几行配置注释,并指定需要的值:

    1
    2
    3
    4
    5
    6
    7
    #允许root认证登录
    PermitRootLogin yes
    #允许密钥认证
    RSAAuthentication yes
    PubkeyAuthentication yes
    #默认公钥存放的位置
    AuthorizedKeysFile  .ssh/authorized_keys

    于是就顺便打开这个配置文件看了看,却发现没有找到 RSAAuthentication 这行注释或者配置项,但是在同目录下 ssh_config 文件中找到了这行配置,对此感到非常的不解,开始认为VPS使用的系统镜像是被修改过的删除了该行,于是使用本地安装了CentOS官方镜像的虚拟机查看该文件,也没有这一行配置。

    带着疑惑使用某不存在的搜索引擎组合关键字 CentOS7 CentOS7.4 RSAAuthentication 查找了一番才找到了解释。


    首先是:

    为什么在 CentOS7.4 的配置文件中没有 RSAAuthentication 这一行?

    CentOS7.4相对于之前版本,做了一些与sshd相关的安全更新来加强sshd的安全性。其中之一就是弃用RSAAuthentication支持。从CentOS7.3升级上来的用户会在升级时被告知这一变化。

    作为从CentOS7.4直接开始使用,也没有阅读过发行说明的我,自然是不清楚这一改动。

    看到这里又产生了新的问题:

    什么是弃用 RSAAuthentication 支持,明明还可以使用密钥对进行ssh登录,是默认开启不允许关闭的意思吗?

    要回答这个问题,首先要了解ssh通讯协议,目前SSH的通讯协议分为第一代和第二代,不用多说第二代有更多功能、选项、和更高的安全性,它是在2006 正式由IETF发表,至今已有十年。由于两代SSH协定并不兼容,我们只能二选其一,CentOS 7的SSH预设使用第二代协定,所以无需做任何设定。

    在同时支持这两个协议的系统中,可以通过  /etc/ssh/sshd_config 配置文件中的 

    1
    Protocol 2

    来制定使用哪一个版本。

    RSAAuthentication (rsa认证)是只支持第1代ssh通讯协议使用的配置项,在CentOS7.4中被废除了,而且前面提到过CentOS7开始预设使用第二代通讯协议,在CentOS7.4中没有找到指定协议版本的配置行,个人猜测是CentOS7.4全面抛弃第1代协议。

    第2代ssh通讯协议的密钥验证选项是

    1
    #PubkeyAuthentication yes

    这个选项默认是注释掉的,并且是默认开启的,因此我们在使用第二代ssh通讯协议时不需要再去纠结 RSAAuthentication 选项了,在CentOS7.4中其强行添加 RSAAuthentication 配置会触发系统对它的废除提示。

    1
    reprocess config line 38: Deprecated option RSAAuthentication

    看到这里所有的疑惑就都解开了,将这个小坑记录下来希望后来的同学能少走弯路。


    参考资料(第二条资料内容有很多值得学习):

    CentOS7.4弃用RSAAuthentication支持 : https://ashub.cn/articles/21

    Linux系统下如何配置SSH_Centos7 ssh连接配置 CentOS7下安全配置 : http://www.linuxdown.net/install/config/2016/0611/5853.html

    Linux-ssh的rsa认证登录配置 : https://www.cnblogs.com/wulaoer/p/5486579.html

    Linux ssh服务开启秘钥和密码认证 : https://www.cnblogs.com/xiaochina/p/6867298.html

    本文来自:[ https://www.cnblogs.com/Leroscox ] 博主:[ MiK ] —— 非商业转载请附原文链接! 商业转载请获得博主许可!
  • 相关阅读:
    Flutter: The getter 'futureDynamicType' was called on null.
    Android混合Flutter
    js bese64转化为blob使用FormData上传
    Flutter FractionallySizedBox 设置维度比例 而不是固定的px
    Flutter 区分开发环境和生产环境
    windows 隐藏desktop.ini文件
    Js中的reduce,fold和unfold
    精读Hooks 取数-swr源码
    WebSocket 原理浅析与实现简单聊天
    TypeScript 2.0 标记联合类型
  • 原文地址:https://www.cnblogs.com/wangsongbai/p/13403795.html
Copyright © 2011-2022 走看看