生成SSH KEY
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
cd ~/.ssh
ls
目录下会出现两个文件,分别为 id_rsa_ouduidui
、 id_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