【报错记录】解决CentOS免密失败的问题,以及解决免密问题的排查流程

2023-11-10

前言

本文相当于对之前的文章进行的补充【原创】三台CentOS7非root用户间实现相互间的免密登录_DCTANT的博客-CSDN博客

现场遇到一台旧服务器与其他服务器免密失败的问题,明明.ssh目录中authorized_keys中的公钥设置都是正确的,但是别的服务器连它都得输密码,我本以为2分钟就能解决了,没想到搞了半小时才解决。

问题排查

1、authorized_keys文件权限

首先排查authorized_keys这个文件的权限,一般来说这个文件的仅有当前用户有编辑权限,其他用户都没有编辑权限,即644,或者600都可以。

如果authorized_keys包含了其他用户的编辑权限,则会导致免密失效。

目前来看这个文件的权限是正确的

 2、查看authorized_keys中的内容是否正确

之前我遇到过好几次了,由于编辑authorized_keys内容的时候用的vi编辑器,然后直接就粘贴了,根本没有先切换为插入模式再粘贴,导致第一个s作为切换功能的命令被吞了,少了第一个字母,导致免密失败。

还有就是少复制了另外几台服务器的id_rsa.pub的内容,或者是本机的id_rsa.pub的内容。

然后这次也没这个问题。

3、查看authorized_keys文件名是否正确

有些人喜欢手敲命令,然后authorized_keys这个文件不是漏最后一个s,就是中间漏字母,也导致免密失败。目前来看我这边也没这个问题

4、查看免密自己

免密先要保证本服务器对于自己的免密,即直接执行:

cp id_rsa.pub authorized_keys

这样生成的authorized_keys不仅能完成对自己免密,就连权限都是对的

然后我执行了对自己的ssh远程连接,结果发现对自己ssh连接都需要输入密码,那肯定不是免密做错了!

当时就有一种眼前一黑的感觉,心想问题严重了,突破我的认知了

5、查看日志

日志路径为/var/log/secure,需要用root用户查看,执行

tail -f -n200 /var/log/secure

日志显示 Authentication refused: bad ownership or modes for directory /home/dct

问题解决

这就很奇怪了,我这个dct用户肯定是有/home/dct这个目录权限的,怎么可能会有这个问题,然后我直接问ChatGPT了,它回答到

“Authentication refused: bad ownership or modes for directory /home/dct"错误通常表示目录”/home/dct"的所有权或权限设置不正确,导致SSH服务器在认证时拒绝访问。

要解决这个问题,您可以按照以下步骤进行操作:

检查目录的所有权:确保目录"/home/dct"的所有权配置正确。对于SSH用户来说,这个目录应该归属于正确的用户,一般对应于具有相应权限的用户帐户。您可以使用以下命令来更改目录的所有权:

sudo chown -R <用户>:<用户组> /home/dct

将<用户>和<用户组>替换为正确的用户和用户组。

检查目录的权限设置:确保目录"/home/dct"的权限设置正确。对于SSH用户来说,该目录的权限应被设置为700,这将确保只有所有者可以对其进行读取、写入和执行操作。您可以使用以下命令来设置目录的权限:

sudo chmod 700 /home/dct

这将设置"/home/dct"目录的权限为700。

确保按照以上步骤检查并更正目录"/home/dct"的所有权和权限设置。如果问题仍然存在,您可能需要进一步检查SSH服务器的配置文件和日志,以便确定是否有其他配置问题或错误。

用户权限肯定是对的,但是用户目录的权限有问题!!

不知道是哪个线上操作的“人才”,把用户的家目录的权限改成了这样,导致了免密失败!!

执行 

sudo chmod 700 /home/dct

 即可解决这个问题!真是活久见了,这个用户文件夹权限也会导致免密失败,我也是第一次遇到!!

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【报错记录】解决CentOS免密失败的问题,以及解决免密问题的排查流程 的相关文章

  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • 抑制 makefile 中命令调用的回显?

    我为一个作业编写了一个程序 该程序应该将其输出打印到标准输出 分配规范需要创建一个 Makefile 当调用它时make run gt outputFile应该运行该程序并将输出写入一个文件 该文件的 SHA1 指纹与规范中给出的指纹相同
  • 如何通过替换为空页映射来取消映射 mmap 文件

    Linux 用户空间有没有办法用空页面 映射自 dev null 或者可能是一个空页面 重复映射到从文件映射的页面的顶部 对于上下文 我想找到这个 JDK bug 的修复 https bugs openjdk java net browse
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • nslookup 报告“无法解析 '(null)': 名称无法解析”,尽管它成功解析了 DNS 名称

    我在 ubuntu 上 并且正在运行 docker 默认桥接网络 我有 Zookeeper kafka 的容器化版本 以及我编写的与 kafka 对话的应用程序 I do a docker exec it
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • 如何将目录及其子目录中的所有 PDF 文件复制到一个位置?

    如何全部复制PDF文件从目录及其子目录到单个目录 实际上还有更多的文件 并且深度有些任意 假设四个目录的最大深度是公平的 我想这些文件需要重命名 如果a pdf例如 位于多个目录中 因为我会adding https ebooks stack
  • 如何在CentOS 5.3上安装php-mongodb?

    我已经在我的 VPS 上安装了 mongoDB 效果很好 现在我想安装 php 驱动程序以使 php 与 mongoDB 一起工作 我跟着蒙戈安装 http www php net manual en mongo installation
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp

随机推荐

  • Codeforces Round #752 (Div. 2) C. Di-visible Confusion (思维暴力))

    题解 根据题意如果2 i 1范围内没法整除就删掉嘛 所以这题其实最多暴力前100就行 证明 因为如果前100有不能整除的 那么这个数一定可以删掉 但是如果前100都能被整除 也就是前100每个数都是这个数的因子 那么这个数就太大了绝对超过了
  • 力扣简单算法题

    简单题 一分类 数组 1 两数之和 哈希表 给定一个整数数组 nums 和一个整数目标值 target 请你在该数组中找出 和为目标值 target 的那 两个 整数 并返回它们的数组下标 你可以假设每种输入只会对应一个答案 但是 数组中同
  • 数据结构作业:时间复杂度和二叉树

    计算时间复杂度 int x 0 i j 1 for i 1 i
  • 小程序可以通过以下几种方式下发消息

    1 模板消息 小程序可以通过模板消息向用户发送通知 例如订单状态更新 活动提醒等 开发者需要先在小程序后台设置好模板消息 并获取到模板消息的模板ID 然后在代码中调用相应的API 将模板消息的内容填充并发送给用户 以下是一个示例代码 用于发
  • CSS开发技巧(四):解决flex多行布局的行间距异常、子元素高度拉伸问题

    在使用flex布局时 若出现换行 有两种较为特殊的现象是值得我们研究的 子元素高度被拉伸 其实际高度大于它的内容高度 各行子元素之间的行间距过大 甚至我们根本没有给子元素设置margin 现在我们将要探究引发这两种现象的原因及解决方案 一
  • for循环三种跳出循环的方法(retrun、continue、break)Mark

    1 continue 指的是跳出当前循环 即不执行continue后的语句 直接进入下次循环 continue语句和break语句差不多 不同的是 它不是退出一个循环 而是跳出当前循环 进行下一轮循环 public static void
  • mac 下的 bash gradle command not found

    最近在用android studio 使用命令行打包的时候出现 bash gradle command not found这个问题 其实也就是因为自己唑gradle的环境变量给弄丢了 但是由于来自大山的孩子对于mac不是很熟 所以不知道咋去
  • Redis3.0.7 cluster/集群 安装配置教程

    原文地址 http blog csdn net ouchuquan article details 50884479 参考地址 http doc redisfans com topic cluster tutorial html http
  • ios 轻 App

    整体建议 使用在一些展示项目中 少量数据产生的 需要借助apple平台让用户了解到的 另外 该功能也可以作为品牌宣传 特别是一些景点之类 简单 页面的 轻 App 是 app 的一小部分 因此您可以使用 iOS SDK 在与完整 app 相
  • Rational rose 2007 下载和安装教程

    文章目录 Rational rose 简介 一 下载Rational rose 2007 二 安装Rational rose 2007 三 激活Rational Rose 2007 四 启动Rational Rose 2007 Ration
  • C++多态性

    本文参考浅谈C 多态性 多态性可以简单地概括为 一个接口 多种方法 程序在运行时才决定调用的函数 它是面向对象编程领域的核心概念 多态 polymorphism 字面意思多种形状 C 多态性是通过虚函数来实现的 虚函数允许子类重新定义成员函
  • 11.16---遍历数组赋值给对象失败,const定义常量不能重新再赋值,render的参数

    1 遍历数组赋值给对象失败 取到的都是最后一项的值 let result item list forEach function value item a value a item b value b result pust item 结果得
  • 字符串合并并处理(C++实现)

    按照指定规则对输入的字符串进行处理 详细描述 将输入的两个字符串合并 对合并后的字符串进行排序 要求为 下标为奇数的字符和下标为偶数的字符分别从小到大排序 这里的下标意思是字符在字符串中的位置 对排序后的字符串进行操作 如果字符为 0 9
  • 关于结构体中最后的 char [0]

    问题 结构体中最后定义一个类似 char p 0 这样的成员 有何意义 回复1 这是个广泛使用的常见技巧 常用来构成缓冲区 比起指针 用空数组有这样的优势 1 不需要初始化 数组名直接就是所在的偏移 2 不占任何空间 指针需要占用int长度
  • vue中实现div可编辑,并插入指定元素,样式

    前言 vue中实现一个既可以编辑内容 有可以动态编辑内容插入一个带有样式的内容 改变默认内容后 这个样式消失的效果 这里来整理下调研与解决实现问题之路 实现最终效果 图2为默认内容 1 可以光标点击任意地方 然后点击按钮 插入带有span的
  • 删除流氓软件的方法

    电脑在网上下载一些东西时经常被捆绑下载很多流氓软件 导致电脑是不是跳出一些弹窗广告 烦不胜烦 经过努力奋斗终于把流氓软件都删除了 下面介绍几个删除流氓软件的经验 1 如果软件不是安装在C盘 可以使用bitloacker给D盘加密 这样开机就
  • CAS单点登录-自定义认证登录策略(五)

    在上一节中我们使用了CAS的提供的JDBC 方式的登录认证 基本上能够满足我们多种需求的认证 但是如果CAS框架提供的方案还是不能满足我们的需要 比如我们不仅需要用户名和密码 还要验证其他信息 比如邮箱 手机号 但是邮箱 手机信息在另一个数
  • 毕业设计 - 基于stm32的WiFi监控小车

    文章目录 1 背景 2 系统设计方案 2 1 实现功能 2 1 1 硬件部分 2 1 2 软件部分 2 1 3 WIFI通信功能 2 2 系统架构 2 2 1 WiFi 通信 2 2 2 电机驱动 2 2 3 摄像头 2 2 4 舵机 2
  • 淘宝商品详情

    contact link 待签名参数 uid ttid 231200 taobao android 9 16 0 data 7B 22itemNumId 22 3A 22638728868726 22 7D lng 23 366706 ut
  • 【报错记录】解决CentOS免密失败的问题,以及解决免密问题的排查流程

    前言 本文相当于对之前的文章进行的补充 原创 三台CentOS7非root用户间实现相互间的免密登录 DCTANT的博客 CSDN博客 现场遇到一台旧服务器与其他服务器免密失败的问题 明明 ssh目录中authorized keys中的公钥