【笔记】中文用户名导致SSH公钥生成与连接问题全解析

在系统用户名为中文的情况下,生成公钥时可能会出现乱码或失败的问题。这是因为某些工具或命令行环境对中文字符的支持不够完善。以下是一些解决方法:

将生成公钥的路径更换为英文路径,然后我就更换路径为f盘创建。

ssh-keygen -t ed25519 -f "F:\git\ed25519"

然后成功生成公钥

但是在测试公钥的时候又出现问题了

问题1:计算机首次连接 GitHub,尚未信任其服务器密钥

解决: 验证 GitHub 的指纹

ssh-keygen -lf <(ssh-keyscan github.com 2>/dev/null)

输出正确显示:

256 SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU github.com

问题2:无法创建 known_hosts 文件

解决:手动指定 known_hosts 路径

set USERPROFILE=F:\git && ssh -T git@gitlab.com -i "F:\git\id_ed25519" -o UserKnownHostsFile="F:\git\known_hosts"

问题3:Permission denied (publickey) 错误。这说明 SSH 连接已建立,但 GitLab 拒绝了你的密钥认证。

解决:

1. 确认公钥已正确添加到 GitLab

步骤:

登录 GitLab → 点击右上角头像 → Preferences → SSH Keys。
将 id_ed25519.pub 的完整内容粘贴到 Key 框中,Title 可自定义。
点击 Add key。

验证是否添加成功:

返回 SSH Keys 页面,确认你的密钥出现在列表中。

2.启动 SSH 代理并添加私钥

在 Git Bash 或 Windows Terminal 中执行:

//启动 ssh-agent(后台运行)
eval $(ssh-agent -s)

//添加你的私钥(路径替换成你的实际路径)
ssh-add F:/git/id_ed25519
//回车后看到Enter passphrase for 直接输入你创建密钥时设置的密码,SSH 代理会加载该密钥,并在当前会话中记住它。

如果成功,会显示:

Identity added: F:/git/id_ed25519 (your_email@example.com)

测试 SSH 连接

运行以下命令测试 Gitee 连接:

ssh -T git@gitee.com

回车后看到:Are you sure you want to continue connecting (yes/no/[fingerprint])?时,输入 yes(不是直接回车),然后按回车。
这会将 Gitee 的主机密钥存入 ~/.ssh/known_hosts,之后不再提示。

正常会显示:

Hi <你的用户名>! You've successfully authenticated, but GITEE.COM does not provide shell access.

注意:这个方法是每次都需要手动启动 SSH 代理并添加私钥,再测试 SSH 连接!!!!!!

其他解决方法我还在探索,有更好解决办法的可以在评论区留言。

不要白嫖,点赞给鼓励吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值