生成SSH KEY

  1. ssh-keygen -t rsa -C "your_email@example.com"

此时会提示保存key的名字以路径,我们只需要自定义key的名字即可。

Enter file in which to save the key (/Users/caichenghan/.ssh/id_rsa): id_rsa_ouduidui

确定后,需要设置密码后既可生成 ssh key

查看生成的SSH KEY

cd ~/.ssh
ls

目录下会出现两个文件,分别为 id_rsa_ouduiduiid_rsa_ouduidui.pub ,前者为私钥,后者为公钥。当我们需要配置SSH的时候,只需要用到公钥既可。
我们可以通过以下命令查看公钥。

cat ~/.ssh/id_rsa_ouduidui.pub

配置

这里我们来配置一下Github
我们只需登录到 Github ,来到 setting ,在左边导航栏找到 SSH and GPG keys ,然后点击 New SSH key 按钮,将你的公钥复制进去然后点击 Add SSH key 既可。
然后可通过下列命令验证账号。

ssh -T git@github.com

此时会有个提示:

The authenticity of host 'github.com (13.229.188.59)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

就是要在本地保存 github.com 的公钥,与 Github 信息交互的时候要带上这个公钥,以便于 Github 解密。
这里填入 yes 然后回车确定既可。

如果你只有一个SSH KEY的话,这时就会显示成功。

Hi xxx! You've successfully ...

但如果你有多个SSH KEY且默认的不是你配置的那个KEY的话,就会显示失败。

这时候就得配置一下SSH KEY的配置文件。

vim ~/.ssh/config
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github

# oschina
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee

# 其它
...

其中 Host 为站点; HostName 为站点名, PreferredAuthentications 为优先使用公钥连接; IdentityFile 为私钥路径。
如果站点为IP地址,则用IP地址代替域名即可。

这时候再次验证就会显示成功。

ssh -T git@github.com