三分钟搞定 SSH 免密登录云服务器

背景

最近 OpenClaw(原 ClawdBot)很火,我也想玩一玩。于是租了一台腾讯云服务器(Ubuntu 系统),准备把项目部署上去。

每次用 SSH 连接服务器都要输入密码太麻烦了,所以先配置一下免密登录。


原理

SSH 免密登录使用密钥对机制:

文件 作用 能给别人吗?
私钥(如 id_ed25519 相当于钥匙,存在你自己电脑上 ❌ 绝对不能
公钥(如 id_ed25519.pub 相当于锁,放在服务器上 ✅ 可以

连接时,SSH 用你的私钥去"开"服务器上的公钥锁,匹配成功就自动登录。


步骤

1. 查看本机是否已有密钥

打开终端,执行:

ls -la ~/.ssh/

命令解释:

  • ls:列出文件
  • -l:显示详细信息(权限、大小、日期等)
  • -a:显示隐藏文件(以 . 开头的文件)
  • ~/.ssh/:要查看的目录,~ 代表你的用户主目录

如果看到类似 id_rsaid_ed25519 这样的文件,说明已经有密钥了,可以跳过第 2 步。

2. 生成密钥(如果没有的话)

ssh-keygen -t ed25519

命令解释:

  • ssh-keygen:SSH 密钥生成工具
  • -t ed25519:指定使用 Ed25519 算法(比 RSA 更现代、更安全)

执行后会问你几个问题,一路回车即可。不设置密码短语(passphrase)才是真正的"免密"。

3. 把公钥传到服务器

ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@服务器IP

例如:

ssh-copy-id -i ~/.ssh/id_ed25519.pub ubuntu@182.254.137.33

命令解释:

  • ssh-copy-id:专门用来把公钥复制到服务器的工具
  • -i ~/.ssh/id_ed25519.pub:指定要上传哪个公钥文件
  • ubuntu@182.254.137.33:目标服务器的用户名和 IP 地址

这一步需要输入一次服务器密码,之后就再也不用了。

4. 测试

ssh ubuntu@182.254.137.33

命令解释:

  • ssh:SSH 连接命令
  • ubuntu:服务器上的用户名
  • 182.254.137.33:服务器的公网 IP

如果直接进入服务器、没有要求输入密码,就成功了!


补充:Windows 用户

Windows 没有 ssh-copy-id 命令,需要手动执行:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh ubuntu@182.254.137.33 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

命令解释:

  • type $env:USERPROFILE\.ssh\id_ed25519.pub:读取本地公钥文件内容
  • |:管道符,把前面的输出传给后面的命令
  • mkdir -p ~/.ssh:在服务器上创建 .ssh 目录(如果不存在)
  • cat >> ~/.ssh/authorized_keys:把公钥内容追加到授权文件中

密钥文件说明

文件名 说明
id_rsa / id_rsa.pub RSA 算法密钥对
id_ed25519 / id_ed25519.pub Ed25519 算法密钥对(推荐,更现代)
config SSH 配置文件,存放服务器连接信息
known_hosts 记录连接过的服务器指纹,防止中间人攻击

下一步

免密登录搞定了,接下来就可以愉快地部署 OpenClaw 了!

后续我会继续分享:

  • 如何在云服务器上部署 OpenClaw
  • 如何配置和玩转这个项目

敬请期待 🎮

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐