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

Hetzner创建云服务器SSH Keys配置介绍(公钥、私钥、密钥配置、SSH配置)

文章目录

  • Hetzner创建云服务器SSH Keys配置介绍
  • 为什么会有 SSH Key?
  • SSH Key 到底是什么?
  • 为什么叫公钥和私钥?
  • 登录过程发生了什么?
  • 为什么服务器只有公钥还能验证?
  • SSH Key 为什么不能反推出私钥?
  • Hetzner 为什么让你添加 SSH Key?
  • 整个流程图
  • 实际操作(Windows / macOS / Linux 都适用)
    • 第一步:生成 SSH Key
    • 第二步:查看公钥
    • 第三步:添加到 Hetzner
    • 第四步:创建服务器
    • 注意这里如果不是用默认生成的SSH密钥,需要在`~/user/.ssh/config`中添加配置
    • 第五步:登录
    • 建议

Hetzner创建云服务器SSH Keys配置介绍

Hetzner 创建云服务器时的SSH Keys配置,这是现代 Linux 服务器最推荐的登录方式。

你可以把 SSH Key 理解成一种比密码更安全、更方便的身份证

先看一下截图里的提示:

No SSH key selected.

我们推荐使用 SSH Key,否则我们会把 root 密码发送到你的邮箱。

也就是说:

  • 使用 SSH Key:创建服务器时就把你的公钥放进去,以后直接登录,不需要密码。
  • 不使用 SSH Key:Hetzner 会生成一个 root 密码,通过邮件发给你。

为什么会有 SSH Key?

先理解密码登录为什么不好。

假设你的服务器 IP 是:

49.12.xx.xx

传统登录方式:

sshroot@49.12.xx.xx

然后:

Password:

输入密码。

问题来了:

  • 密码容易泄露
  • 容易被暴力破解
  • 需要记住
  • 密码可能在邮件中传播
  • 自动化脚本不方便

所以后来大家想到:

为什么不用公钥密码学?

于是就有了 SSH Key。


SSH Key 到底是什么?

它其实就是一对钥匙:

┌───────────────┐ │ ssh-keygen │ └──────┬────────┘ │ ▼ 私钥(Private Key) id_ed25519 │ │ │ ▼ 公钥(Public Key) id_ed25519.pub

生成的时候,一次产生两把钥匙。

其中:

私钥

id_ed25519

只有你自己保存。

永远不要给别人。


公钥

id_ed25519.pub

可以公开。

里面长这样:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...

这就是你要上传到 Hetzner 的东西。


为什么叫公钥和私钥?

因为它们是一对。

可以理解成:

公钥 = 锁 私钥 = 钥匙

服务器只安装:

你的电脑保存:

钥匙

只有你的钥匙能打开那把锁。

所以:

服务器 ← 公钥 电脑 ← 私钥

登录过程发生了什么?

假设:

你的电脑:

Private Key

服务器:

Public Key

登录:

sshroot@server

整个过程其实类似:

你的电脑 Private Key │ │ ▼ 我可以证明 我拥有私钥 │ ────────────►│ 服务器 Public Key 验证: 这个签名 是不是对应 我的公钥? 是 允许登录

重点:

整个过程没有传输私钥。

密码也没有传输。


为什么服务器只有公钥还能验证?

这是公钥密码学最神奇的地方。

举个例子。

假设:

服务器说:

给你一道题: 123456789

你的电脑拿私钥:

签名: ABCDXYZ...

发回服务器。

服务器用:

Public Key

验证:

是不是对应? ✔ 是

于是:

你一定拥有私钥。

但服务器永远不知道私钥是什么。

这就是数字签名的原理。


SSH Key 为什么不能反推出私钥?

因为使用的是成熟的公钥密码算法,例如:

  • Ed25519(目前推荐)
  • RSA(老但仍常见)
  • ECDSA

这些算法设计上就是:

Private Key │ ▼ 数学运算 ▼ Public Key

这个过程容易。

反过来:

Public Key ↓ Private Key

几乎不可能。

否则整个互联网 HTTPS 都会失效。


Hetzner 为什么让你添加 SSH Key?

创建服务器的时候,它会做一件事:

你的公钥 ↓ 写进服务器: ~/.ssh/authorized_keys

例如:

/root/.ssh/authorized_keys

里面就是:

ssh-ed25519 AAAAC3Nza....

以后:

ssh root@server

服务器就会检查:

你的私钥 ↓ 是不是对应 authorized_keys 里的公钥?

如果匹配:

登录成功

整个流程图

第一次 你的电脑 ────────────── 生成: id_ed25519 id_ed25519.pub │ │上传 ▼ Hetzner 创建服务器 │ 写入: authorized_keys ──────────────────────── 以后登录: ssh root@IP │ 使用: Private Key │ 数字签名 ▼ 服务器 Public Key │ 验证成功 ▼ 登录

实际操作(Windows / macOS / Linux 都适用)

具体操作记录参考文章:Hetzner服务器购买和Cloudflare域名配置记录(hcloud CLI)

第一步:生成 SSH Key

打开终端执行:

ssh-keygen-ted25519-C"your_email@example.com"

邮箱部分是注释,不影响密钥的实际功能

参考文章:ssh-keygen命令介绍

一路按回车即可。

生成后通常会得到:

~/.ssh/id_ed25519 ~/.ssh/id_ed25519.pub

Windows 使用 PowerShell 也是一样。


第二步:查看公钥

执行:

cat~/.ssh/id_ed25519.pub

会输出:

ssh-ed25519 AAAAC3Nz...... your_email@example.com

全部复制。


第三步:添加到 Hetzner

点击:

+ Add SSH key

填写:

Name: My Laptop
Public Key: ssh-ed25519 AAAAC3Nza...

保存。


第四步:创建服务器

创建服务器时勾选:

✓ My Laptop

服务器创建完成后,就已经信任你的电脑了。


注意这里如果不是用默认生成的SSH密钥,需要在~/user/.ssh/config中添加配置

Host hetzner-server HostName ********** User root IdentityFile ~/.ssh/hetzner_jobcopilot IdentitiesOnly yes

第五步:登录

sshroot@服务器IP

第一次会提示:

Are you sure you want to continue connecting?

输入:

yes

之后就直接进入服务器,不需要输入 root 密码。


sshhetzner-server

第一次登陆,键入yes

建议

如果你接下来打算用 Hetzner 部署项目,我建议从一开始就使用 SSH Key 登录,而不是密码登录。这也是 Linux 运维和云平台(包括 GitHub、GitLab、AWS、Azure、Google Cloud 等)的主流做法。

如果你感兴趣,我还可以进一步讲解SSH 的完整工作机制,包括:

  • 为什么第一次连接会出现Are you sure you want to continue connecting?(Host Key 是什么)
  • known_hosts文件的作用
  • authorized_keys文件的作用
  • SSH 登录过程中完整的握手流程(客户端认证、服务器认证、会话密钥协商),帮助你真正理解 SSH 的底层原理。
http://www.cnnetsun.cn/news/3145076.html

相关文章:

  • 网盘下载慢到抓狂?这个开源浏览器脚本让你轻松获取高速直链
  • AI开发入门:Pandas、Numpy、PyTorch与FastAPI实战指南
  • API调用调度层设计:如何用Handler分组管理十几个电商平台
  • 足球口袋教练 HarmonyOS 离线应用实战(19/20):Hvigor 构建与模拟器验收
  • Playwright MCP复用Chrome登录态:AI自动化测试与RPA新范式
  • 自动化图像批量处理解决方案:GIMP BIMP插件专业工作流指南
  • 2026图片去水印怎么弄?无痕去水印实用技巧+免费工具手机电脑教程
  • 个人分享|校园新闻网站源码与配套论文,课设毕设参考素材!
  • Spring Boot学习(二)
  • 安卓手机 SIM 卡迁移至新款 iPhone 17/16?
  • FAST-LIO src/IMU_Processing.hpp 完整详细讲解
  • Java SE 部分总结 终
  • Topit:如何在Mac上实现多窗口置顶管理,终极效率提升指南
  • 2D数字人快速搭建指南:从入门到实战
  • 影石Insta360 AI剪辑实战:从素材到成片的自动化流程解析
  • PIC18F2458与DS28EC20的1-Wire EEPROM存储方案设计
  • Windows程序隐身术:3分钟学会RunHiddenConsole后台运行技巧
  • 机械革命笔记本重装Windows系统全指南
  • Web组件SEO优化实战:破解Shadow DOM内容不可见难题
  • Windows下飞书Bot接入ROS/Python服务的合规实践
  • Shell脚本与Nginx一键部署实战指南
  • AI编程工具链全栈配置与实战指南
  • Electron应用安全:无服务器C2攻击与自适应威胁防御
  • Hexo+GitHub Pages搭建免费技术博客全攻略
  • Cursor AI破解工具终极指南:三步免费解锁Pro功能,告别试用限制
  • DeepBump终极指南:3步实现AI驱动的3D纹理转换
  • GPT-5.5与Codex CLI是虚构的:开发者必须知道的AI模型事实
  • UE5开发中解决鼠标捕获问题的实用方案
  • UE4/5 UI弹框输入丢失与音效叠加问题解决方案
  • 边缘模型量化误差:别只看 Top1,要看现场阈值