当前位置: 首页 > news >正文

【linux】免密登录

一、免密登录涉及的文件
SSH 的免密登录用的是数字签名:

客户端 服务端 (持有私钥) (持有公钥) │ │ │ 1. 请求登录 (ssh user@server) │ │ ─────────────────────────────────────→ │ │ │ │ 2. 服务端生成一个随机数 (challenge) │ │ ←───────────────────────────────────── │ │ │ │ 3. 客户端用私钥对随机数进行签名 │ │ (sign with private key) │ │ │ │ 4. 发送签名结果 │ │ ─────────────────────────────────────→ │ │ │ │ 5. 用公钥验证签名 │ (verify with public key) │ 如果验证通过 → 认证成功 │ │ │ 6. 认证结果 │ │ ←───────────────────────────────────── │

假如A机器访问B机器,则A需要持有私钥,B需要有公钥,这里的公钥id_rsa.pub和私钥id_rsa是一对!

假如A的用户是root ,那么 /root/.ssh/下需要存在私钥,名称是id_rsa,只有一个

B的用户是ubuntu,那么 /home/ubuntu/.ssh下需要有公钥,名称是authorized_keys (内容是多个id_rsa.pub,因为C用户可以访问B,也可以存在C的某个用户私钥对应的公钥)

二、权限问题

2.1 文件或目录权限问题

SSH 服务对密钥文件和目录的权限有极其严格的要求,这是安全设计的一部分。任何权限过宽的设置都会导致免密登录失败,即使密钥内容完全正确。

客户端 (A机器) 权限要求

  • ~/.ssh/目录:权限必须是700(仅所有者可读写执行)。
  • ~/.ssh/id_rsa(私钥):权限必须是600(仅所有者可读写)。这是最敏感的,绝不能让其他用户读取。
  • ~/.ssh/id_rsa.pub(公钥):权限可以是644(所有者读写,其他用户只读),因为公钥本身不敏感。

服务端 (B机器) 权限要求

  • ~/.ssh/目录:权限必须是700
  • ~/.ssh/authorized_keys文件:权限必须是600。如果权限是644或更开放,SSH 服务会出于安全考虑拒绝读取该文件,导致认证失败。
  • 用户家目录 (/home/ubuntu/):权限不应超过755。如果家目录权限是777,SSH 服务同样会拒绝使用authorized_keys文件。

常见错误与修复

错误现象

配置了公钥,但登录时仍提示输入密码,或直接报错Permission denied (publickey)

排查步骤
  1. 检查服务端.ssh目录权限ls -ld ~/.ssh,应为drwx------
  2. 检查服务端authorized_keys文件权限ls -l ~/.ssh/authorized_keys,应为-rw-------
  3. 检查服务端家目录权限ls -ld ~,应为drwxr-xr-x或更严格。
修复命令
chmod700~/.sshchmod600~/.ssh/authorized_keyschmod755~# 如果家目录权限过宽## 2.2 AllowUsers 机制AllowUsers 是白名单机制,如果不配置,默认对任何用户不限制; 一旦配置了,那么其他用户都受限 当免密失效,仍报permisson deny时,检查下 /etc/ssh/sshd_config 配置 日志分析:若用户无法登录,可通过查看认证日志(如 /var/log/auth.log 或 /var/log/secure)定位原因。典型的拒绝日志为:User xxx not allowed because not listedinAllowUsers
http://www.jsqmd.com/news/952147/

相关文章:

  • 别再手动复制了!Typora、VS Code、Obsidian里快速输入Emoji的3种高效方法
  • 告别默认菊花转!手把手教你用Qt/C++打造高颜值自定义Loading弹窗(附完整源码)
  • 别再手动写代码了!用Simulink的Powergui内置FFT工具,5分钟搞定PWM电路谐波分析
  • 运筹学对偶理论:从“生产 vs 出租”的生意经,看懂强对偶与互补松弛
  • 深圳 ai 智能开发公司哪家值得信赖:官方精选权威测评攻略 - 13724980961
  • 【Springboot毕设全套源码+文档】基于springboot的网上课程资源远程教育资源共享平台的设计与实现(丰富项目+远程调试+讲解+定制)
  • GitHub 浏览器版 VSCode 现漏洞,研究人员短通知披露引发安全伦理争议
  • 从CT机到你的屏幕:一次DICOM医学影像的完整‘旅程’与格式揭秘
  • 子图对齐问题的信息论界限与ER模型分析
  • Skill即服务:用Agent安全玩转云上Flink
  • 2026 年深圳宝安小户型全屋定制 带榻榻米和衣帽间如何实现高性价比 - 产品测评官
  • 深圳 ai 智能开发公司哪家收费透明:TOP5 专业榜单深度 - 17329971652
  • 特斯拉摄像头被黑、OVH机房大火:给开发者的云服务与数据安全避坑指南
  • STM32F103温湿度光照监测与自动调控硬件开发包:含可烧录代码、Proteus仿真、AD原理图及双层PCB源文件
  • 2025年03月 GESP等级认证C++编程(一级)试题解析
  • 深圳办公 ai 培训机构哪家便宜:深度榜单独家推荐攻略 - 13425704091
  • 从Codex更新看AI Agent未来:通用智能体正在崛起
  • Ceph分布式存储实战:块存储RBD、对象网关RGW与文件系统CephFS详解
  • 华夏之光永存:量子计算机为何迟迟无法商用
  • 避坑指南:Quartus II 16.0安装后License配置失败的常见原因与解决方案
  • 大型下载站部署美国大带宽服务器成本高吗?
  • 2026年最新武汉科思特仪器|在线腐蚀监检测设备实力剖析 - 品牌评测官
  • 深圳 ai 智能开发公司哪家便宜:独家排名最新深度推荐 - 17322238651
  • 终极Windows系统清理工具:免费快速解决C盘爆红问题
  • 计算机毕业设计之基于LSTM模型的NBA小前锋综合实力分析与预测
  • Bootstrap-Select 企业级下拉组件架构解析:高性能UI组件实现原理与最佳实践
  • STM32平衡小车PID调参避坑实录:从‘怀疑人生’到稳定站立的5个关键步骤
  • 深圳办公 ai 培训机构哪家评价好:最新排名专业精选指南 - 19120507004
  • vue-router-link实现导航高亮效果
  • 单招培训