前情提要
因为我之前很作死的在电脑本地用户名中设置了中文字符,导致始终无法与github建立ssh连接
如今通过hexo在github上建立了一个博客,为了更新方便,如今是必须要姐姐这个ssh连接github的历史遗留问题了。
好在有万能的AI,在它的帮助下我们来看如何解决这个问题
首先,为了严谨起见,我们查看本地是否已生成过SSH密钥
ls -al ~/.ssh
查看到并没有 id_rsa
和 id_rsa.pub
文件(或 id_ed25519
文件),仅显示有一个本地的hosts文件时,这下放心了,可以完全从生成SSH密钥开始做起
ssh-keygen -t ed25519 -C "你的邮箱地址"
使用这个命令生成新的SSH密钥
按回车接受默认文件位置,设置密码(可选)
到了这一步,因为本地用户名有中文字符,又开始报错了
请教下AI该怎么处理
下面,重点来了
# 方案1:手动指定密钥保存路径 # 不要使用默认路径,手动指定一个简单的英文路径:ssh-keygen -t ed25519 -C "e-mail地址" -f /c/ssh_keys/id_ed25519 # 这会直接在 C 盘根目录创建 ssh_keys 文件夹来保存密钥。
详细步骤如下
1. 生成密钥到简单路径
ssh-keygen -t ed25519 -C "e-mail地址" -f /c/ssh_keys/id_ed25519
按提示操作:
-
输入密码(可选,直接回车表示不设密码)
-
再次确认密码
2. 创建 SSH 配置文件
# 创建配置目录(如果不存在) mkdir -p /c/Users/Public/.ssh# 创建 SSH 配置文件 nano /c/Users/Public/.ssh/config
添加以下内容:
Host github.comHostName github.comUser gitIdentityFile /c/ssh_keys/id_ed25519
3. 设置环境变量
# 设置 SSH 使用我们创建的配置
export SSH_HOME=/c/Users/Public
4. 启动 SSH 代理并添加密钥
# 启动 SSH 代理 eval "$(ssh-agent -s)"# 添加密钥 ssh-add /c/ssh_keys/id_ed25519
5. 复制公钥到 GitHub
# 显示公钥内容
cat /c/ssh_keys/id_ed25519.pub
复制输出的全部内容,然后添加到 GitHub 的 SSH keys 中。
设置完成后,测试链接
ssh -T git@github.com
当出现Are you sure you want to continue connecting (yes/no/[fingerprint])?的提示时,输入yes
最后,当出现
Hi fcbyoung! You've successfully authenticated, but GitHub does not provide shell access.
的提示时,说明
-
SSH 密钥设置成功 ✅
-
GitHub 已经识别了你的身份 ✅
-
现在可以正常使用 Git 操作了 ✅
大功告成,非常好使