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


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

PasswordAuthentication no

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

PasswordAuthentication yes

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


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

#允许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 配置文件中的

Protocol 2

来制定使用哪一个版本。

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

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

#PubkeyAuthentication yes

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

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

CentOS7.4配置SSH登录密码与密钥身份验证踩坑的更多相关文章

  1. Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录【已成功实例】

    本文转自https://blog.csdn.net/qjc_501165091/article/details/51278696 ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口 ...

  2. 配置Ssh免密码登录

    配置Ssh免密码登录 一个master节点,两个client节点(client1.client2) 1.所有节点创建hadoop用户,并设置密码 以root账号登录: useradd hadoop p ...

  3. CentOS 6.5配置SSH免密码登录

    centos 系统对权限的设置非常微妙,如果权限设置大了则ssh 拒绝,如果权限小了,则ssh 更是被拒绝(我曾经配置好久没有打通,就是因为权限过大的原因) 参考链接:http://www.linux ...

  4. Linux配置SSH免密码登录

    CentOS配置SSH免密码登录为例说明:SSH远程登录的安全外壳协议有两种身份认证机制: - 用户名+密码 -密钥登录 环境准备 host1:192.168.0.10host2:192.168.0. ...

  5. stackstorm docker中配置ssh免密码登录方式

    在docker中配置st2的ssh登录方式折腾了好久,今天终于彻底搞懂了如何重启容器后也不丢失之前的配置,只要容器起来后就可以正常ssh 执行st2中的remote-shell-script 和rem ...

  6. 解决:centos配置ssh免密码登录后仍要输入密码

    转自https://www.jb51.net/article/121180.htm 第一步:在本机中创建秘钥 1.执行命令:ssh-keygen -t rsa 2.之后一路回车就行啦:会在-(home ...

  7. Xshell配置ssh免密码登录-密钥公钥(Public key)

    1 简介 ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法. 使用密钥登录分为3步: 1 ...

  8. 如何配置ssh免密码登录

    [TOC] 如果你在管理一堆unix机器,每次登录都要输入密码是挺烦的事情,一方面为了安全我们一般不会将所有机器的密码都设置成一样,另一方面就算一样每次都输入一遍也很麻烦. 这种情况下我们一般是用ss ...

  9. Xshell配置SSH免密码登录

    思路: 私钥存放于客户端,id_rsa 将客户端公钥存放于要远程控制服务器上:将客户在公钥id_rsa.pub内容追加到 /root/.ssh/authorized_keys 使用密钥认证分3步: 1 ...

随机推荐

  1. Servlet的复习

    Servlet概述 在JavaWeb阶段,使用Servlet是很经常的是事情,Servlet作为MVC中控制器(C)的存在,是不可缺少的一部分.当然Servlet作为JavaWeb的三大组件之一(其他 ...

  2. VMware 虚拟机中添加新硬盘的方法(转载)

    随着在虚拟机中存储的东西的逐渐的增加,虚拟机的硬盘也逐渐告急,因此急需拓展一块新的虚拟磁盘.以下便是在VMware 中添加新的虚拟磁盘的方法:   一.VMware新增磁盘的设置步骤 (建议:在设置虚 ...

  3. 线程queue、线程进程池、异步回调机制

    1. 线程 queue queue is especially useful in threaded programming when information must be exchanged sa ...

  4. kafka的OffsetOutOfRangeError

    from kafka import KafkaClient, SimpleConsumer from sys import argv kafka = KafkaClient("10.0.1. ...

  5. Vue源码(一)

    入口文件 src/core/instance/index.js 中可以看到 function Vue (options) { if (process.env.NODE_ENV !== 'product ...

  6. 利用Linux系统生成随机密码的9种方法

    Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 1. 使用SHA算法来加密日期,并输出结 ...

  7. 上传项目到git

    …or create a new repository on the command line   echo "# test" >> README.md git ini ...

  8. 第六章 Validating with the Validation API

    CHAPTER 6 Validating with the Validation API Defining and Triggering Validation: An Overview 你可以使用以下 ...

  9. 批处理文件中获取当前所在路径的几种方法,以及写文件到txt

    @echo off setlocal EnableDelayedExpansion echo 当前正在运行的批处理文件所在路径:!cd! pause @echo off echo 当前目录是:%cd% ...

  10. redis 开发与运维 学习心得1

    主要是命令相关 第一章 初识Redis 1.redis是基于键值对的NoSQL. 2.redis的值可以是 string, hash, list, set, zset, bitmaps, hyperl ...