CentOS SSH无法登录

我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战

简单记录,自用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 文件,找到其中这几行配置注释,并指定需要的值:

| 1234567 | #允许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代协议。

v2-c57bf43b7a8b9b198f63797ccf4d8982_720w.png

第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

CentOS SSH 远程登录是一种通过安全壳协议 (Secure Shell, 简称 SSH) 来连接 CentOS Linux 主机并对其进行远程控制的方式。SSH 协议提供了一种加密的通信通道,使得用户可以在本地计算机上安全地访问远端服务器。 ### 使用 SSH 登录 CentOS 的步骤: #### 准备阶段: 1. **确认 CentOS 服务器状态**:首先需要确保 CentOS 服务器正常运行并且网络可达。通常,服务器应处于开机状态,并通过互联网或局域网能够从您的本地系统访问到。 2. **获取服务器信息**:您需要知道 CentOS 服务器的 IP 地址、用户名以及默认的 SSH 端口(通常是 22)。此外,如果设置了更复杂的认证机制(例如公钥授权),还需要相应的私钥文件。 #### 实际操作步骤: 1. **打开终端**:在您的本地计算机上启动终端程序,这可以是在 MacOS 上的 Terminal,Windows 上的 PowerShell 或是 Unix/Linux 的终端模拟器。 2. **输入命令行**:在终端中输入以下基本的 SSH 命令行: ```bash ssh 用户名@服务器IP地址 ``` 示例: ```bash ssh root@192.168.1.100 ``` 其中,“root”是 CentOS 服务器的管理员账号,替换为您已知的有效账号;“192.168.1.100”是 CentOS 服务器的 IP 地址。 3. **验证身份**:如果您尚未对服务器配置过公钥认证,您可能需要输入密码。之后会进入服务器命令行界面,您可以开始执行各种管理任务、查看日志、安装软件等操作。 #### 安全提示: - **定期更新系统**:为了保护您的 CentOS 服务器免受潜在的安全威胁,建议定期更新系统和所有软件包。 - **设置强密码**:确保您的 SSH 密码强度足够高,并定期更换。避免使用容易猜测或常见的密码。 - **限制访问权限**:只允许需要访问服务器的人拥有 SSH 访问权限,并尽可能使用密钥认证而非纯密码认证,以提高安全性。 ### 相关问题 - SSH 配置与管理: 1. **如何更改 CentOSSSH 端口号**? 2. **如何在 CentOS 中启用公钥认证以简化 SSH 登录流程**? 3. **当遇到 SSH 登录失败时,应该检查哪些方面的问题**? 以上内容介绍了 CentOS SSH 远程登录的基本原理及操作步骤,并针对一些常见问题进行了说明。希望这对您理解和实践 CentOS SSH 远程登录有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值