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 连接服务器。如果一切配置正确,这次系统不会再提示你输入密码,而是会直接显示服务器的欢迎信息并成功登录!

相关推荐
云宏信息3 小时前
超融合和存算分离怎么选?从性能、可靠性、扩展、成本四个维度讲述如何精准匹配架构选型 | 附企业降本轻量云方案
运维·服务器·架构·云计算
无足鸟ICT4 小时前
【RHCA+】type命令(判断命令类型)
linux·ssh·bash
咸鱼梦想家π4 小时前
Linux开发工具(下)
linux·运维·服务器
云飞云共享云桌面5 小时前
机械制造研发部门:一台SolidWorks云主机替代 10 台传统图形工作站
运维·服务器·网络·3d·自动化·制造
j7~6 小时前
【ProtoBuf】(篇一)初识 ProtoBuf
运维·服务器·序列化·protobuf·protobuf的适用特点
丰锋ff6 小时前
用户管理命令
linux·运维·服务器
BcoreOS6 小时前
‌新手必看:Debian 13 虚拟机 SSH 连不上?我是怎么一步步调试成功的
服务器
迪菲赫尔曼6 小时前
【基础篇 08】让VS Code连接服务器:界面在本地,文件保存到远端
运维·服务器·vscode·yolo·论文·教程·ultralyt
东方佑6 小时前
去魅:工具调用、Agent 调用、A2A、MCP、Harness 到底都是什么
服务器·网络·数据库
H.莓飛7 小时前
【数据结构】排序总结与规模实测
linux·服务器·开发语言·数据结构·visual studio·1024程序员节