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

LInux(二十一)——Linux SSH 基于密钥交换的自动登录原理简介及配置说明

文章目录

  • 前言
  • 一、SSH 密钥登录原理简介
    • 1.1 协商交互过程
  • 二、Linux 环境下配置与登录演示
    • 2.1 生成密钥对
    • 2.2 分发公钥至目标服务器
    • 2.3 测试自动登录
  • 三、Windows 环境下使用 Xshell 配置密钥登录
    • 3.1 生成密钥对
    • 3.2 部署公钥至目标服务器
    • 3.3 配置 Xshell 连接使用密钥认证
  • 总结

前言

SSH(Secure Shell)是一种加密的网络传输协议,用于在不安全的网络中提供安全的远程登录和其他安全网络服务。基于密钥的认证机制是 SSH 提供的一种高安全性且便于自动化的登录方式。本文旨在介绍 SSH 基于密钥交换的自动登录原理,并提供在 Linux 和 Windows 环境下的详细配置步骤,帮助用户实现无需密码的快速、安全登录。


一、SSH 密钥登录原理简介

1.1 协商交互过程

SSH 密钥认证过程基于非对称加密机制,具体流程如下:

  1. 客户端向目标服务器发起 SSH 登录请求。若服务器启用了密钥认证方式,将优先尝试该方式验证用户身份。
  2. 服务器根据用户目录下的公钥配置文件(如 ~/.ssh/authorized_keys)读取有效的公钥信息。
  3. 服务器生成一串随机数,并使用对应用户的公钥对其进行加密。
  4. 服务器将加密后的密文发送回客户端。
  5. 客户端使用本地存储的私钥(默认或通过 -i 参数指定)尝试解密该密文。
  6. 若解密失败,则转而尝试其他认证方式(如密码认证)。若解密成功,客户端将解密得到的原文发回服务器,以此证明其拥有对应私钥。
  7. 服务器比对客户端返回的原文与之前生成的随机数。若一致,则认证成功,允许登录;否则认证失败,继续尝试其他登录方式。

证书校验交互登录流程示意图所示:

在这里插入图片描述


二、Linux 环境下配置与登录演示

2.1 生成密钥对

使用 ssh-keygen 工具生成 RSA 密钥对,命令如下:

ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa

参数说明:

参数含义解释
ssh-keygen密钥生成工具OpenSSH 中用于创建认证密钥对的程序。
-t rsa指定密钥类型使用 RSA 算法,兼容性好,也可选用 ed25519ecdsa
-P ''设置私钥密码空密码表示私钥不受密码保护,便于自动化,但安全性降低。
-f /root/.ssh/id_rsa指定密钥文件路径私钥保存为指定路径,公钥自动保存为同名文件加 .pub 后缀。

在这里插入图片描述

# 查看私钥和公钥
[root@simon110 ~]# vim /root/.ssh/id_rsa
[root@simon110 ~]# vim /root/.ssh/id_rsa.pub 

在这里插入图片描述
在这里插入图片描述

2.2 分发公钥至目标服务器

使用 ssh-copy-id 工具将公钥复制到目标服务器:

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.123

过程中需输入目标服务器用户密码,完成公钥写入。
在这里插入图片描述

2.3 测试自动登录

执行以下命令测试是否可实现无密码登录:

ssh root@192.168.10.123

若配置成功,将直接登录远程主机,无需输入密码。
在这里插入图片描述


三、Windows 环境下使用 Xshell 配置密钥登录

3.1 生成密钥对

  1. 打开 Xshell,依次选择【工具】→【用户密钥管理者】,点击【生成】。
  2. 选择密钥类型为 RSA,长度默认 2048 位,点击【下一步】。
  3. 生成密钥对后,继续【下一步】。
  4. 密钥加密密码可留空,以便实现自动化登录。
    在这里插入图片描述
    在这里插入图片描述

3.2 部署公钥至目标服务器

  1. 复制生成的公钥字符串。
    在这里插入图片描述

  2. 登录目标服务器,将公钥内容追加至对应用户的 ~/.ssh/authorized_keys 文件中:

echo '你的公钥' >> /root/.ssh/authorized_keys

在这里插入图片描述

3.3 配置 Xshell 连接使用密钥认证

  1. 新建或编辑会话,填写目标主机 IP 和用户名。
  2. 在【用户身份验证】中选择“Public Key”方式,并指定刚才生成的私钥文件。
  3. 点击【确定】保存配置,即可实现一键登录。

在这里插入图片描述

在这里插入图片描述


总结

通过以上介绍和演示,我们已经掌握了SSH密钥认证的登录机制及其在Linux和Windows系统下的配置流程。这种认证方式不仅增强了登录安全性,消除了密码传输隐患,还为自动化运维和脚本执行带来了极大便利。

需要特别注意的是,未设置密码保护的私钥文件必须妥善保管,以防泄露造成安全隐患。在实际应用中,建议根据安全需求决定是否设置私钥密码,同时合理调整服务器端SSH配置,在安全性和便捷性之间取得平衡。

整体流程如下

  • 准备阶段:生成密钥对并部署公钥至服务器;
  • 认证阶段:客户端请求登录,服务器返回加密随机数,客户端解密并返回原文,完成验证;
  • 结果:验证成功则登录,失败则转其他认证方式。
http://www.dtcms.com/a/352265.html

相关文章:

  • jenkins2025配置邮箱发送
  • 基于Android的车位预售预租APP/基于Android的车位租赁系统APP/基于Android的车位管理系统APP
  • Leetcode—1163. 按字典序排在最后的子串【困难】
  • Linux(二十二)——服务器初始化指南
  • cuda编程笔记(16)--使用 cuDNN 实现卷积、激活、池化等反向操作
  • 刀客doc:沃尔玛取消与TTD的独家合作,对程序化广告意味着什么?
  • 【RAGFlow代码详解-23】聊天系统架构
  • 字节跳动国际版 TRAE 深度解析:重新定义 AI 时代的编程体验
  • Docker化性能监控平台搭建:JMeter+InfluxDB+Grafana全攻略
  • Vite 模块联邦插件 实现微前端架构,其核心原理概述
  • 网络安全零基础入门:2025核心知识与系统学习路径分享
  • 工地考勤数据、监控回传与远程办公需求,如何通过贝锐蒲公英实现?
  • 做项目总是出问题,如何提升项目管理能力?
  • (MySQL索引事务) 本节目标 索引 事务
  • JUC之并发编程总结
  • 控制系统仿真之基础知识(一)
  • Nat Commun|“铃铛病”的空间多组学揭示基质细胞在疾病发生中的核心地位
  • 广告推荐模型1:逻辑回归(Logistic Regression,LR)
  • WebSocket实时通信系统——js技能提升
  • Linux 详谈软硬链接
  • 如何从零开始学习黑客技术?网络安全入门指南
  • Linux 系统配置 YUM 软件仓库
  • 【大语言模型 22】Tokenization深度技术:BPE、WordPiece、SentencePiece
  • 【Redisson】redis最佳实践-RedissonUtils+Caffeine
  • 【机器人】2025年人形机器人看护革命:AI驱动的医疗变革先锋
  • 小知识-为什么处理异步数据渲染需要async await 搭配Promise.all实现?
  • 昆仑资本完成对国产工业操作系统龙头企业光亚鸿道的投资
  • MYSQL递归
  • mysql优化-mysql索引下推
  • Python 将十进制转换为十六进制