1. 起因
给自己的 github 改个名,顺便就给原来 Hexo 对应的仓库也改了个名。然后发现 ub='hexo clean && hexo generate && hexo deploy'
失败了,报错如下:
INFO Deploying: git
INFO Clearing .deploy_git folder...
INFO Copying files from public folder...
INFO Copying files from extend dirs...
[master 397fba4] Site updated: 2023-07-15 13:57:29
173 files changed, 728 insertions(+), 559 deletions(-)
create mode 100644 2023/07/15/Setting-Up-SSH-Keys-for-GitHub/index.html
/Users/ritsu/.ssh/config line 4: no argument after keyword "k%u7h@j2s!wa"
/Users/ritsu/.ssh/config: terminating, 1 bad configuration options
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
FATAL {
err: Error: Spawn failed
at ChildProcess.<anonymous> (/Users/ritsu/Study/Hexo/node_modules/hexo-util/lib/spawn.js:51:21)
at ChildProcess.emit (node:events:512:28)
at ChildProcess._handle.onexit (node:internal/child_process:293:12) {
code: 128
}
} Something's wrong. Maybe you can find the solution here: %s https://hexo.io/docs/troubleshooting.html
划重点:Please make sure you have the correct access rights and the repository exists.
好像我的 ssh
配置出问题了,想来那就重新配一遍吧,顺便记录下。
2. 配置过程
2.1 生成 SSH 密钥
ssh-keygen -t ed25519 -C "your_email@example.com"
**注意:**如果您使用的是不支持Ed25519算法的遗留系统,请使用:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
> Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM): [Press enter]
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]å
这时候在 ~/.ssh/
下应该看到如下文件:
2.2 将 SSH 密钥添加到 ssh-agent
-
在后台启动 ssh-agent
$ eval "$(ssh-agent -s)" > Agent pid 51024
-
打开文件
~/.ssh/config
,然后修改文件以包含以下行Host github.com AddKeysToAgent yes IdentityFile ~/.ssh/id_ed25519
-
将 SSH 密钥添加到 ssh-agent
ssh-add ~/.ssh/id_ed25519
2.3 将 SSH 公钥添加到 GitHub 上的帐户
-
将 SSH 公钥复制到剪贴板
$ pbcopy < ~/.ssh/id_ed25519.pub
-
在 GitHub 任何页面的右上角,点击头像,然后点击设置
-
打开左侧的 SSH and GPG keys
-
New SSH key
起个好听的名字,然后把第一步中复制的公钥粘贴进去
2.4 恭喜🎉,快来测试下吧
$ ssh -T git@github.com
> Hi Kudoryafuka3! You've successfully authenticated, but GitHub does not provide shell access.
3. 参考
- https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
- https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account