SSH密钥配置(免密连接远程服务器)

1、在本地生成密钥对(本地电脑)

打开你本地电脑的终端(Terminal / PowerShell / CMD),运行:

复制代码
ssh-keygen -t ed25519 -C "用户名(用户-密钥对应的)"

运行后,系统会连续问你三个问题,一般情况下全部直接按回车(Enter)即可:

  1. Enter file in which to save the key... (提示你保存路径):直接按回车,保存在默认路径 ~/.ssh/id_ed25519

  2. Enter passphrase (empty for no passphrase): (提示你设置私钥密码):直接按回车留空。如果你设置了密码,以后每次用密钥登录还是要输这个密码,就失去了"免密"的意义。

  3. Enter same passphrase again: (确认密码):再次按回车。

完成后,你的本地电脑里就有了 id_ed25519(私钥,自己藏好)和 id_ed25519.pub(公钥,准备发给服务器)。

2、获取你的公钥内容(本地电脑)

在本地电脑的终端运行以下命令,查看公钥内容:

复制代码
cat ~/.ssh/id_ed25519.pub

终端会输出一长串字符(以 ssh-ed25519 开头,以你的邮箱结尾)。用鼠标选中并复制这一整段内容。

3、将公钥写入远程服务器(远程服务器)

这一步的目的是把刚刚复制的"锁(公钥)"装到服务器上。

  • 正常登录服务器:用密码通过 SSH 登录到你的远程服务器。

  • 确保 .ssh 目录存在:在服务器终端运行:

    复制代码
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
  • 打开 authorized_keys 文件: 如果你是用 VS Code 连接的服务器,此时运行你之前提到的命令:

    复制代码
    code ~/.ssh/authorized_keys
  • 粘贴并保存:把第二步中复制的那一长串公钥内容,粘贴到这个文件中。如果文件里已经有别的公钥了,就另起一行粘贴。保存并关闭文件。

  • 设置严格的权限(非常重要):SSH 对权限要求极高,权限不对会拒绝登录。在服务器终端运行:

    复制代码
    chmod 600 ~/.ssh/authorized_keys

4、测试免密登录(本地电脑)

回到你的本地电脑终端,尝试像往常一样通过 SSH 连接服务器。如果一切配置正确,这次系统不会再提示你输入密码,而是会直接显示服务器的欢迎信息并成功登录!

相关推荐
酱学编程5 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
艾莉丝努力练剑7 小时前
OpenCode AI 编程:Ubuntu 24.04 环境安装与使用指南
linux·服务器·网络·人工智能·tcp/ip·ubuntu
崇山峻岭之间8 小时前
Keil5输出hex转换为bin的设置
linux·运维·服务器
Tian_Hang9 小时前
Eclipse Ditto 的权限策略
java·服务器·前端·网络·ide·ubuntu·eclipse
着迷不白10 小时前
Linux 磁盘管理完全指南:分区、文件系统、挂载与 LVM 实战
linux·运维·服务器
山川而川-R10 小时前
LangChain
linux·运维·服务器
QH_ShareHub11 小时前
Linux 根目录结构详解
linux·运维·服务器
骑士雄师11 小时前
langchain:推荐切片策略
服务器·前端·langchain
千逐6811 小时前
Uniapp 鸿蒙实战之 AtomGit APP - 仓库详情与文件树浏览
服务器·microsoft·uni-app
liuyicenysabel12 小时前
多服务上线日记二:
服务器·笔记·学习