SSH key生成
ssh key生成
$ ssh-keygen -t rsa -C
此时会提示保存key的名字及路径,我们只需要自定义key的名字(路径)即可。
Enter file in which to save the key (/Users/caichenghan/.ssh/id_rsa):
填写自定义路径
/Users/caichenghan/.ssh/id_rsa_github
输入密码生成 ssh key
,可直接按Enter进入生成。
查看生成的ssh key
$ cd /Users/caichenghan/.ssh
$ ls
目录下会多出2个文件,分别为 id_rsa_github
、 id_rsa_github.pub
,前者为私钥,后者为公钥,我们只需要把公钥上传到github账户的公钥管理中即可。
我们还可以使用Finder查看该路径:Finder->右键->前往文件夹-> ~/.ssh
查看公钥
$ cat ~/.ssh/id_rsa_github.pub
查看名为 id_rsa_github.pub
的公钥,然后将公复制下来,打开 Github
个人设置中的 公钥管理
中,添加公钥即可。
账户验证
$ ssh -T
此时会有个提示,如下
The authenticity of host (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?
站点的公钥信息,可以在 ~/.ssh
目录下的 known_host
里查看。有时候需要删除这个 known_host
里的站点公钥,重新建立安全连接。
然而,此时的验证确是失败的,因为这个验证会使用默认的名为 id_rsa
和 id_rsa.pub
的文件进行信息交互,很显然这不是我们想要的。what can i do ?
ssh key 配置文件制作
配置文件制作
$ vim ~/.ssh/config
配置 github
的ssh key
Host github
HostName
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
其中 Host
为站点; HostName
为站点名; PreferredAuthentications
为优先使用公钥连接; IdentityFile
,私钥路径。
如果站点为 ip地址
,则用 ip地址
代替 域名
即可。
再次验证
$ ssh -T
Hi xxx! You've successfully ...
成功!
同理,我们还可以继续添加其它账号的 ssh key
,这样就可以同一台电脑,使用多个 ssh key
免密码的git操作了。