SSH密钥生成

2022-02-19 澡盆

macOS的话在终端里输入git会提示安装CommandLineTools,可以参考此文:CommandLineTools重装

windows的话要装一个Git Bash,然后参考这里操作:SSH教程

一、检查是否已有密钥

以macOS为例:

ls -al ~/.ssh

如果返回total为0,那就要生成新密钥。

二、生成新密钥

GitHub是建议使用Ed25519算法生成密钥:

ssh-keygen -t ed25519 -C "你的邮箱"

如果你的系统不支持此算法,可以用这个:

ssh-keygen -t rsa -b 4096 -C "你的邮箱"

然后会让你选择存储的位置,一般默认就行。
再输入密码两次即可生成。

三、使用公钥

一般进行SSH操作,都是用到公钥。若要复制公钥内容,默认位置的情况下可以终端输入:

pbcopy < ~/.ssh/<公钥名称>

公钥名称一般默认有以下几种,分别对应不同的加密方式:

id_rsa.pub
id_ecdsa.pub
id_ed25519.pub

另外,建议输入以下命令,比对一下GitHub官网的SSH指纹是否正确:GitHub’s SSH key fingerprints

ssh -T git@github.com

题外话:保存密钥密码

如果不想每次git操作都输入密钥密码,可以将其添加到ssh-agent和macOS的Keychain里。 先检查ssh配置文件是否存在:

open ~/.ssh/config

如果不存在就新建并打开:

touch ~/.ssh/config
open -e ~/.ssh/config

输入一下内容:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

~/.ssh/id_ed25519是密钥路径,可根据情况修改。最后把密钥的密码添加到Keychain:

ssh-add -K ~/.ssh/id_ed25519