首先ssh文件夹路径
C:\Users\你的用户名\.ssh
1:重新生成 SSH 密钥对(本地电脑操作)
打开Git Bash (首选)、Windows 终端、CMD 或 PowerShell 都可以,推荐 Git Bash,兼容性最好,不会出权限问题
执行生成命令(复制直接运行,无需修改)
ssh-keygen -t ed25519 -C "你的邮箱地址"
命令说明 & 执行时的选项(全部按回车即可,不要输入任何内容!)
-t ed25519:生成目前最安全的 ed25519 类型密钥,比旧的 rsa 更安全高效-C "你的邮箱":密钥的备注,写你自己的邮箱就行,方便后续识别,不影响使用- 执行后会依次出现 3 个提问,全部直接按回车默认 :
- 第一个:
Enter file in which to save the key→ 回车,保存到默认的.ssh目录 - 第二个:
Enter passphrase→ 回车,设置密钥密码(可选),建议直接回车(无密码,连接更方便) - 第三个:
Enter same passphrase again→ 回车,确认密码
- 第一个:
执行成功后,你的 .ssh 文件夹会自动生成 3 个核心文件
id_ed25519→ 🔒 私钥文件:核心机密,绝对不能删除 / 修改 / 发给任何人!id_ed25519.pub→ 📄 公钥文件:纯文本,可以随便复制,需要配置到远程服务器的文件里known_hosts→ 记录你连接过的服务器信息,后续连接会自动生成和更新
2、核心步骤 2:把本地「公钥」配置到远程服务器(重中之重)
SSH 免密连接的原理就是:本地私钥 + 服务器公钥 配对验证,你之前连接失败,本质就是没有这个配对关系了,这一步是解决问题的核心,两种方法任选其一,推荐方法一(最省事)
✅ 方法一:一行命令自动上传公钥(推荐,无任何报错)
在本地的 Git Bash / 终端 中,直接复制运行以下命令,修改里面的 2 个内容即可:
ssh-copy-id 你的服务器用户名@服务器IP地址
示例
比如你的服务器用户名是 root,服务器 IP 是 120.25.xx.xx,命令就是:
ssh-copy-id root@120.25.xx.xx