[特殊字符] 震惊!90%的运维工程师竟然不会正确生成SSH密钥?10年老司机手把手教你避坑!

🔑 震惊!90%的运维工程师竟然不会正确生成SSH密钥?10年老司机手把手教你避坑!

引言

兄弟们,今天咱们来聊聊SSH密钥生成这个看似简单实则暗藏玄机的话题。说实话,我刚入行那会儿,也觉得这玩意儿不就是个ssh-keygen命令的事儿吗?直到有次线上服务器被黑,排查后发现是因为密钥生成不当导致的,这才意识到问题的严重性!

作为一个在Linux运维圈摸爬滚打10多年的老油条,今天我就把SSH密钥生成的正确姿势、常见误区以及高级用法,统统毫无保留地分享给大家。相信我,看完这篇文章,你对SSH密钥的理解会上升不止一个level!

名词解释

SSH (Secure Shell)

SSH是一种加密的网络传输协议,用于在不安全的网络中为网络服务提供安全的传输环境。它通过在客户端和服务器之间建立加密隧道来实现安全通信。

非对称加密

SSH密钥使用的是非对称加密体系,包含一对密钥:

- 私钥(Private Key):必须严格保密,相当于你的"数字身份证"

- 公钥(Public Key):可以自由分发,用于验证私钥持有者的身份

密钥对类型

常见的SSH密钥对类型有:

- RSA (传统且广泛支持)

- ECDSA (基于椭圆曲线,更安全高效)

- Ed25519 (目前最先进的算法)

参数解释

ssh-keygen命令的主要参数:

| 参数 | 说明 | 推荐值 |

|------|------|--------|

| -t | 指定密钥类型 | rsa/ecdsa/ed25519 |

| -b | 指定密钥位数 | RSA建议4096,ECDSA建议521 |

| -C | 添加注释 | 通常用邮箱作为标识 |

| -f | 指定密钥文件路径 | ~/.ssh/id_rsa |

| -N | 设置密钥密码 | 建议设置强密码 |

| -o | 使用新OpenSSH格式 | 增强安全性 |

| -a | KDF迭代次数 | 建议100以上增强安全性 |

环境

本文演示环境:

- 操作系统:Ubuntu 22.04 LTS

- SSH版本:OpenSSH 8.9p1

- Shell环境:bash 5.1.16

举例子

基础示例:生成RSA密钥

# 生成4096位的RSA密钥对(这是目前最安全的RSA配置)

ssh-keygen -t rsa -b 4096 -o -a 100 -C “your_email@example.com”

# 执行后会提示以下信息(交互式操作):

Generating public/private rsa key pair.

Enter file in which to save the key (/home/user/.ssh/id_rsa): # 直接回车使用默认路径

Enter passphrase (empty for no passphrase): # 建议输入强密码

Enter same passphrase again: # 再次确认密码

Your identification has been saved in /home/user/.ssh/id_rsa

Your public key has been saved in /home/user/.ssh/id_rsa.pub

高级示例:生成Ed25519密钥

# Ed25519是目前最推荐的算法,更安全且性能更好

ssh-keygen -t ed25519 -a 100 -C “your_email@example.com”

# 验证密钥指纹(重要!首次连接服务器时核对)

ssh-keygen -l -f ~/.ssh/id_ed25519

密钥管理最佳实践
  1. 设置正确的文件权限:

chmod 700 ~/.ssh

chmod 600 ~/.ssh/id_* # 私钥必须设为600

chmod 644 ~/.ssh/*.pub # 公钥可以宽松些

  1. 配置ssh-agent自动管理密钥:

# 启动ssh-agent

eval “$(ssh-agent -s)”

# 添加密钥到agent(需要输入密码)

ssh-add ~/.ssh/id_ed25519

# 查看已加载的密钥

ssh-add -l

  1. 多密钥管理:

# 创建config文件管理不同主机的密钥

vim ~/.ssh/config

# 示例内容:

Host github.com

HostName github.com User git IdentityFile ~/.ssh/id_ed25519_github IdentitiesOnly yes

Host production-server

HostName 192.168.1.100 User root IdentityFile ~/.ssh/id_rsa_production Port 2222

服务器端配置
  1. 将公钥部署到服务器:

# 简单方法(需要密码登录)

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@hostname

# 手动方法(将.pub文件内容追加到服务器的~/.ssh/authorized_keys)

cat ~/.ssh/id_ed25519.pub | ssh user@hostname “mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys”

  1. 加固服务器SSH配置:

# 编辑/etc/ssh/sshd_config

sudo vim /etc/ssh/sshd_config

# 关键安全设置:

PasswordAuthentication no # 禁用密码登录

PubkeyAuthentication yes # 启用密钥认证

PermitRootLogin no # 禁止root直接登录

AllowUsers your_username # 只允许特定用户登录

常见问题解决方案

问题1:密钥权限太开放导致被拒绝

错误信息:

Permissions 0644 for ‘/home/user/.ssh/id_rsa’ are too open.

It is required that your private key files are NOT accessible by others.

解决方案:

chmod 600 ~/.ssh/id_rsa

问题2:忘记密钥密码怎么办?

警告:没有官方方法恢复,但可以:

  1. 如果有备份的未加密私钥,使用那个
  2. 如果没有,只能生成新密钥对并重新部署

预防措施:

- 使用密码管理器保存密钥密码

- 在安全的地方备份未加密的私钥(如加密的USB驱动器)

问题3:如何测试密钥是否正常工作?

# 使用-v参数查看详细连接过程

ssh -v user@hostname

# 指定特定密钥测试

ssh -i ~/.ssh/id_ed25519 -v user@hostname

总结

SSH密钥生成看似简单,但里面的门道可不少。通过本文,你应该掌握了:

  1. 如何生成安全的SSH密钥对(推荐使用Ed25519算法)
  2. 密钥管理的最佳实践(权限设置、ssh-agent使用等)
  3. 多密钥环境下的高效管理方法
  4. 常见问题的解决方案

记住,安全无小事!一个配置不当的SSH密钥可能就是黑客入侵的突破口。所以,赶紧检查下你的密钥配置是否符合安全规范吧!

网络安全学习资源分享:

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,之前都是内部资源,专业方面绝对可以秒杀国内99%的机构和个人教学!全网独一份,你不可能在网上找到这么专业的教程。

内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,200多G的资源,不用担心学不全。
在这里插入图片描述
因篇幅有限,仅展示部分资料,需要见下图即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
————————————————

本文转自 https://blog.youkuaiyun.com/bdfcfff77fa/article/details/148975669?spm=1001.2014.3001.5502,如有侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值