摘要:本文手把手教你配置SSH免密登录,从生成密钥、上传公钥到配置SSH别名,最终实现ssh openclaw一键连接服务器+自动建立隧道。告别繁琐密码输入,提升远程开发效率!


一、前言

作为开发者,每天频繁连接远程服务器是常态。每次输入密码不仅繁琐,还存在密码泄露风险。SSH密钥认证是目前最安全的远程登录方式,配合SSH别名配置,可实现真正的一键连接。

本文以连接OpenClaw服务器为例,带你3分钟搞定免密登录配置。


二、生成SSH密钥(本地电脑)

2.1 检查现有密钥

ls ~/.ssh/id_rsa

如果显示文件已存在,可直接使用,跳到第三步。

2.2 生成新密钥

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

操作提示:一路按回车即可,使用默认路径和空密码(或设置密码短语增强安全)。

生成后会得到两个文件:

  • ~/.ssh/id_rsa —— 私钥(务必保密
  • ~/.ssh/id_rsa.pub —— 公钥(可安全分发)

三、上传公钥到服务器

3.1 使用ssh-copy-id(推荐)

最简单的方式,一键完成:

ssh-copy-id -p 26509 root@103.47.81.189

按提示输入一次服务器密码,公钥自动上传。

3.2 手动复制(备选)

如果ssh-copy-id不可用,手动操作:

cat ~/.ssh/id_rsa.pub | ssh -p 26509 root@103.47.81.189 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

四、测试免密登录

ssh -p 26509 root@103.47.81.189

🎉 无需输入密码即成功!

如果仍提示密码,检查:

  • 服务器~/.ssh权限是否为700
  • ~/.ssh/authorized_keys权限是否为600
  • SELinux是否关闭(CentOS)

五、配置SSH别名+隧道(一劳永逸)

5.1 编辑SSH配置文件

Mac/Linux:

vim ~/.ssh/config

Windows:

C:\Users\你的用户名\.ssh\config

5.2 添加配置

Host openclaw
    HostName 103.47.81.189
    User root
    Port 26509
    LocalForward 8087 127.0.0.1:8087
    ServerAliveInterval 60
    ServerAliveCountMax 3
    IdentityFile ~/.ssh/id_rsa

参数说明:

参数 说明
Host 别名,自定义
HostName 服务器IP或域名
User 登录用户名
Port SSH端口
LocalForward 本地端口转发(隧道)
ServerAliveInterval 心跳检测间隔(秒)
ServerAliveCountMax 最大心跳失败次数
IdentityFile 私钥路径

六、一键连接实战

6.1 连接服务器

ssh openclaw

无需输入密码,隧道自动建立!

6.2 访问服务

浏览器打开:http://localhost:8087

6.3 后台运行(不占用终端)

ssh -fN openclaw

参数说明:

  • -f 后台运行
  • -N 不执行远程命令(仅做端口转发)

6.4 关闭隧道

pkill -f "ssh.*openclaw"

或查找进程ID后kill:

ps aux | grep ssh

七、Windows PuTTY免密配置

7.1 转换私钥格式

PuTTY使用.ppk格式,需用PuTTYgen转换:

  1. 打开PuTTYgen → Conversions → Import key
  2. 选择id_rsa文件
  3. 点击Save private key,保存为openclaw.ppk

7.2 PuTTY配置

  1. Session:Host Name填103.47.81.189,Port填26509
  2. Connection → SSH → Auth:浏览选择openclaw.ppk
  3. Connection → SSH → Tunnels
    • Source port: 8087
    • Destination: 127.0.0.1:8087
    • 点击Add
  4. Connection:Seconds between keepalives填60
  5. Session:Saved Sessions填openclaw,点击Save保存

以后双击保存的会话即可免密连接!


八、常见问题排查

现象 原因 解决
仍提示输入密码 权限问题 服务器执行chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
Permission denied SELinux限制 setenforce 0临时关闭
Bad owner/permissions 本地私钥权限太开放 chmod 600 ~/.ssh/id_rsa
连接超时 防火墙阻挡 检查服务器SSH端口是否开放
别名不生效 配置文件格式错误 检查缩进和空格,Host前无空格

九、安全建议

  1. 私钥保管id_rsa相当于你的身份证,切勿上传GitHub或分享给他人
  2. 密钥密码:生成时可设置密码短语,即使私钥泄露也多一层保护
  3. 定期轮换:建议每6-12个月更换一次密钥对
  4. 多密钥管理:不同服务器使用不同密钥,避免一损俱损
# 生成专用密钥
ssh-keygen -t ed25519 -f ~/.ssh/openclaw_key -C "openclaw-server"

十、写在最后

配置SSH免密登录后,远程开发效率提升不止一点点:

  • ✅ 告别重复输入密码
  • ✅ 一键连接+自动隧道
  • ✅ 后台运行不占用终端
  • ✅ 安全性比密码更高

如果你有任何问题,欢迎在评论区留言!觉得有用的话,点赞收藏不迷路 👍


标签: SSH 免密登录 远程开发


📌 版权声明:本文为原创内容,版权归作者所有,转载需注明出处。

Logo

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

更多推荐