Bug:SSH Failed Permission Denied(完美解决)

Bug:SSH Failed Permission Denied(完美解决)

今天我本机mac通过ssh访问linux服务器时报错:SSH Failed Permission Denied
思路:

  • linux服务器sshd是否开启
  • linux /etc/ssh/sshd_config配置是否正确(是否开启允许公钥认证、Root方式登录等)
  • 本地mac 的~/.ssh/config是否正确(如果配置文件中未指定使用哪个私钥,默认会寻找mac的~/.ssh/id_rsa私钥与linux服务器公钥进行认证)
    我是因为本地不小心在~/.ssh/config指定了错误的私钥文件,导致与我linux的公钥验证时匹配失败。我将他注释之后重新ssh成功免密访问linux服务器。
    在这里插入图片描述
# 详细显示通信过程(类似debug)
ssh -v root@10.xx.xx.xx

解决办法

1. 检查目标服务器sshd服务是否开启

systemctl status sshd

在这里插入图片描述

2. 检查目标linux /etc/ssh/sshd_config是否允许公钥认证等

# 检查配置是否开启
grep -E 'PermitRootLogin | PubkeyAuthentication |PasswordAuthentication' /etc/ssh/sshd_config | grep -v '#'

在这里插入图片描述

如果未开启则需按照下面方式开启对应配置:

vim /etc/ssh/sshd_config# 允许root登录、允许使用公钥认证、允许使用密码登录
PermitRootLogin yes 
PubkeyAuthentication yes
# 可选
PasswordAuthentication yes # 重启sshd服务
systemctl restart sshd

3. 检查本地是否有~/.ssh/config,如果有配置是否正确

有时我们如果有多个服务,并且会使用到多个私钥的话,就会使用~/.ssh/config

  • ~/.ssh/config主要用于配置访问不同主机使用哪个私钥匹配。详情:一文教会git如何配置多SSH Key(Github+Gitlab)
cat ~/.ssh/config

比如我这次就是配置了错误的私钥与服务端验证。导致通信失败
在这里插入图片描述

4. ssh -v root@10.xx.xx.xx分析具体错误

如果上面都没问题,则可以通过ssh -v查看具体通信过程,以及对应报错。

# 查看通信详细信息
ssh -v root@10.xx.xx.xx

拓展1:linux配置免密

1 本机mac生成私钥

# 一路回车
ssh-keygen -t rsa

2 拷贝公钥到linux服务器

# 拷贝指定公钥到目标服务器(将公钥拷贝到authorized_keys文件中。如果匹配成功,就允许无密码登录。)
# 如果不-i指定公钥文件默认会拷贝~/.ssh/id_rsa.pub公钥到服务器
ssh-copy-id root@10.xx.xx
#ssh-copy-id -i ~/.ssh/id_rsa.pub  root@10.xx.xx.xx

拓展2:~/.ssh/authorized_keys与~/.ssh/known_hosts

~/.ssh/authorized_keys:存放公钥,用于ssh免密登录(存在linux服务端)
~/.ssh/known_hosts:判断我们ssh连接的服务器是否是真实的,避免中间人攻击(存在mac客户端)

~/.ssh/authorized_keys 和 ~/.ssh/known_hosts 是SSH协议中两个重要的文件,它们分别服务于不同的安全目的,但共同协作保障SSH连接的安全性和便利性。

  • ~/.ssh/authorized_keys:
    作用:此文件存储在远程服务器上(您尝试连接的机器),位于用户的家目录下的.ssh目录中。它包含了允许访问该账户的所有公钥列表。当您从本地机器尝试SSH登录到远程服务器时,远程SSH服务会检查您提供的私钥是否有对应的公钥存在于authorized_keys文件中。如果匹配成功,就允许无密码登录
    安全意义:通过这种方式,SSH实现了基于密钥的身份验证,提高了安全性,避免了密码传输带来的风险。
  • ~/.ssh/known_hosts
    作用:此文件位于本地机器的用户家目录下的.ssh目录中。它记录了所有曾经连接过的远程主机的公钥指纹。当您首次尝试连接到一个新的SSH服务器时,SSH客户端会提示您验证服务器的指纹,并将其添加到known_hosts文件中。之后每次连接同一服务器时,SSH客户端都会对比远程服务器发来的公钥指纹与known_hosts中的记录,确保没有受到中间人攻击(MITM)。
    安全意义:通过维护已知主机的公钥指纹记录,known_hosts帮助检测潜在的安全威胁,确保您连接的是预期的服务器,防止被假冒的服务器欺骗

联系与区别

  • 联系:两者都是SSH协议用来加强连接安全性的机制。authorized_keys确保了客户端的合法身份,而known_hosts确保了服务器身份的合法性,两者共同构建了SSH连接的信任基础。
  • 区别:authorized_keys关注于授权,即允许哪些客户端(通过其公钥)可以访问服务器;而known_hosts关注于验证,即本地客户端如何确认远程服务器的身份是可信的。一个是权限控制,一个是安全验证。

拓展3:ssh root@10.xx.xx.xx采用私钥顺序

  • ~/.ssh/id_rsa: 这是最常用的私钥文件,默认情况下,SSH客户端会查找用户主目录下的.ssh/id_rsa作为私钥。
  • ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519: 如果配置了其他类型的密钥(如ECDSA或ED25519),SSH也会依次尝试这些默认的密钥文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用@Value注解无法成功获取配置文件内容,常见原因

在日常的java开发中,我们经常会遇到一些需要将信息写在配置文件的要求,比如文件的输出目录,输入目录的。当在配置文件中写入对应的目录配置时,那么怎么读取配置文件的内容就需要我们去了解了。 在java中一般使用Value这个注解去读…

腾讯《地下城与勇士:起源》手游在部分安卓平台停止更新

原标题:因合约到期 《DNF手游》停止安卓平台更新 易采游戏网6月19日消息:《地下城与勇士:起源》(简称DNF手游)官方今天公告,因合作协议到期,自6月20日起,该游戏将不再在某些安卓应用商店提供。腾讯公司已经…

Stable Diffusion【光影文字】:绚丽光影,文字与城市夜景的光影之约

今天我们我们结合城市夜景背景来看一下光影文字的效果,我们先来看一下效果图。 一. 字融城市夜景制作光影文字方法 【第一步】:制作底图这里制作底图使用黑底白字。我们使用美图秀秀制作一个"小梁子"字的底图。 字体:默认字体 图…

XTR115的一些感悟

今天花了些时间看了下XTR115的资料,虽然之前经常用,但是电路里面的细节一直没有去深究。1、XTR115的最大电流是32mA.当环路电流接近32 mA时能自动限流,这个在手册里有的。我在想XTR115坏了是什么情况。以前遇到过好多个XTR115损坏的情况&…

北京银行品牌价值提升160亿元首破千亿 位居《中国500最具价值品牌》榜第85位!

6月19日,由世界品牌实验室(World Brand Lab)主办的第二十一届“世界品牌大会”在北京举行,活动现场发布了2024年《中国500最具价值品牌》榜单。在这份基于财务数据、品牌强度和消费者行为分析的年度报告中,北京银行最新品牌价值达1036.62亿元…

SK投屏助手:电脑控制手机,游戏与App轻松畅玩

SK投屏助手让您将手机画面完美投射至电脑屏幕,而且不止于此!现在,您可以利用电脑反向控制手机,轻松操作各种游戏和应用程序。无论是在家中放松还是在工作中提高效率,SK投屏助手都能成为您的得力助手。立即体验无缝连接…

【第20章】Vue实战篇之Vue Router(路由)

文章目录 前言一、使用Vue-Router1.安装2. 创建路由器实例3. 注册路由器插件4. 根组件 二、访问路由器1.理论2.使用3. 展示 三、嵌套路由(子路由)1. 准备文件2. 配置路由3. 菜单配置4. 展示 总结 前言 Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成,…

银行数仓项目实战(四)--了解银行业务(存款)

文章目录 项目准备存款活期定期整存整取零存整取存本取息教育储蓄定活两便通知存款 对公存款对公账户协议存款 利率 项目准备 (贴源层不必写到项目文档,因为没啥操作没啥技术,只是数据。) 可以看到,银行的贴源层并不紧…

【linux】内核从tcp层调用IP层摸索中

合入代码: 登录 - Gitee.com 这是运行日志: https://gitee.com/r77683962/linux-6.9.0/raw/master/test_log/kern_tcp_ip.log 日志截取部分(也不知道对不对,凭感觉走。。。。)

【ARMv8/ARMv9 硬件加速系列 3.2 -- SVE 读写内存指令 st1b | st1w | st1w | st1d 使用介绍】

文章目录 SVE Load 和 Store 指令使用介绍LD1 加载指令ST1 存储指令PFR 预取指令参考示例LD1 加载示例ST1 存储示例代码实例SVE Load 和 Store 指令使用介绍 ARMv9架构中的SVE(Scalable Vector Extension)指令集为向量计算提供了强大支持,特别是针对不同数据类型和访问模式…

【机器学习300问】125、什么是双向循环神经网络(BRNN)?什么是深度循环神经网络(DRNN)?

一、双向循环神经网络 (1)诞生背景 双向循环神经网络(Bidirectional Recurrenct Neural Network, BRNN)是在深度学习领域发展起来的一种特殊类型的循环神经网络(RNN),它诞生的背景是为了解决传…

自养号补单:Shopee,Lazada等东南亚电商卖家销量提升的必备技能

在东南亚电商跨境平台中、lazada、shopee是东南亚地区最大的在线购物网站,其目标主要是印地,马来,台湾,菲律宾,新加坡,泰国和越南等用户。而自养号补单作为一种有效的推广手段,正逐渐被越来越多…

WinRAR应用文件图标是白色怎么解决

1.打开程序-选项-设置 2.找到集成-选择全部切换,保存即可。

统计信号处理基础 习题解答10-14

题目: 观测到数据 其中是已知的,是方差为的WGN,且和独立,求的MMSE估计量以及最小贝叶斯MSE。 解答: 观测到的数据写成矢量形式: 其中: 根据题目条件,符合定理10.3,因此…

预算有限?如何挑选经济适用的ERP系统?

中小企业在运营过程中,经常面临着一个共同的挑战——如何在有限的预算内挑选到一款既符合业务需求又经济适用的ERP系统。然而,市场上ERP系统种类繁多,价格差异大,功能复杂,使得许多企业在选择时感到迷茫和困惑。 如果…

基于VSCode和MinGW-w64搭建LVGL模拟开发环境

目录 概述 1 运行环境 1.1 版本信息 1.2 软件安装 1.2.1 下载安装VS Code 1.2.1.1 下载软件 1.2.1.1 安装软件 1.2.2 下载安装MinGW-w64 1.2.2.1 下载软件 1.2.2.2 安装软件 1.2.3 下载安装SDL 1.2.3.1 下载软件 ​1.2.3.2 安装软件 1.2.4 下载安装CMake 1.2.4.…

打击帮信罪掩隐罪的全渠道交易反欺诈解决方案

结合多年对抗黑灰产的实践经验,芯盾时代利用自主研发的智能风控决策平台(IRD)、账户风险监测系统(ARM)、终端威胁态势感知(MTD)、智能终端密码模块(PMIT)、设备指纹等产品…

GLib库内存块数据类型简单用法

代码; #include <glib.h> int main() {GMemChunk *chunk; // 定义内存块gchar *mem[10]; // 定义指向原子的指针数组gint i, j;chunk g_mem_chunk_new( // 创建内存块"Test MemChunk", // 名称5, // 原子的长度50, …

DNS污染是什么?防止和清洗DNS污染的解决方案

在运营互联网业务中&#xff0c;通常会遇到各种各样的问题。其实DNS污染就是其中一个很严重的问题&#xff0c;它甚至会导致我们的业务中断&#xff0c;无法进行。今天就来了解一下DNS污染是什么&#xff1f;以及如何防止和清洗DNS污染。 什么是DNS&#xff1f; 首先我们要了解…