Linux SSH 密钥认证登录原理与配置指南
文章目录
- 前言
- 一、SSH 密钥登录原理简介
- 1.1 协商交互过程
- 二、Linux 环境下配置 SSH 密钥登录
- 2.1 生成密钥对
- 2.2 分发公钥至目标服务器
- 2.3 测试登录
- 三、Windows环境使用 MobaXterm 配置密钥登录
- 3.1 生成密钥对
- 3.2 保存密钥文件
- 3.3 配置会话使用密钥
- 总结
前言
想象一下:每天要反复输入一长串密码登录服务器,就像每次回家都要掏钥匙开门——偶尔忘带钥匙还要折腾半天。那有没有更优雅的方式?有的,兄弟!有的!
SSH密钥登录就像给你的数字身份配了一把「指纹锁」:预先埋下信任的种子,之后每次连接只需「嘀」一声——无需密码、瞬间准入。这不仅省时省力,更是自动化运维、脚本执行、甚至未来云原生世界的入门基石。
今天,我们就用一杯咖啡的时间,解锁这项既安全又高效的核心技能——让你的终端操作流畅如丝,告别重复输入密码的机械时代。
一、SSH 密钥登录原理简介
1.1 协商交互过程
SSH 密钥登录基于非对称加密技术,其核心流程如下:
- 客户端向目标服务器发起登录请求。
- 服务器检查用户目录中是否存在已授权的公钥。
- 服务器生成一串随机数,并使用该公钥加密。
- 服务器将加密后的密文发送给客户端。
- 客户端使用本地私钥尝试解密。
- 若解密成功,客户端将原文发回服务器;若失败,则尝试其他认证方式(如密码)。
- 服务器比对原文,一致则认证成功,允许登录。
该过程既保证了身份验证的安全性,又实现了无密码自动登录。
二、Linux 环境下配置 SSH 密钥登录
2.1 生成密钥对
使用 ssh-keygen
命令生成 RSA 密钥对:
ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa
参数 | 说明 |
---|---|
-t rsa | 指定密钥类型为 RSA |
-P '' | 设置空密码,方便自动化,但降低安全性 |
-f /root/.ssh/id_rsa | 指定私钥保存路径,公钥会自动保存为同名文件加 .pub 后缀 |
2.2 分发公钥至目标服务器
使用 ssh-copy-id
命令将公钥复制到目标服务器:
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.23
过程中需输入目标服务器的密码,完成后公钥将被写入 ~/.ssh/authorized_keys
文件。
2.3 测试登录
使用以下命令测试无密码登录:
ssh root@192.168.10.121
若配置成功,将直接登录到目标服务器,无需输入密码。
三、Windows环境使用 MobaXterm 配置密钥登录
3.1 生成密钥对
- 打开 MobaXterm,选择【Tools】→【MobaKeyGen】。
- 点击【Generate】,移动鼠标增加随机性。
- 生成完成后设置注释,密码可留空。
3.2 保存密钥文件
- 复制公钥内容,保存为
.pub
文件(如mk.pub
)。 - 点击【Save private key】保存私钥为
.ppk
文件(如mk.ppk
)。
3.3 配置会话使用密钥
- 在Linux的
/root/.ssh.authorized_keys
文件中追加公钥 - 在会话设置中选择【Advanced SSH settings】→【Use private key】。
- 选择刚才保存的
.ppk
文件。 - 连接时即可自动使用密钥认证。
总结
从手动输密码到一键密钥登录,你已经迈出了 “自动化运维” 的关键一步!这不仅是减少几次键盘敲击那么简单 —— 它背后是对非对称加密技术的实际应用,是让工作流更高效的智慧,更是给服务器加上了一层 “专属防伪” 的安全锁。
记住,技术的意义在于让复杂变简单。当你熟练掌握密钥登录,你会发现:原来远程管理可以如此流畅,原来 “安全” 和 “便捷” 真的能兼得。接下来,试着给更多设备配置密钥,探索批量管理的技巧吧 —— 每一次简化操作,都是在为更重要的工作节省精力。技术的进阶,就藏在这些 “让重复劳动消失” 的小细节里,继续往前冲!