按需生成多个秘钥
ssh-keygen -t rsa -C your_email@github.com
生成的时候, 会让你指定key的名字, 就是这句话Enter file in which to save the key (/Users/kirin/.ssh/id_rsa):
, GitHub的这个我是直接打了回车, 生成的秘钥的名字就是默认的id_rsa
. 如果我打了id_codehub
那么就按照这个名字生成秘钥. 这个名字叫什么无所谓, 主要是一会儿我们会在配置文件中使用生成的私钥的地址, 自己不弄错了就好了, 当然最好还是取个好名字.
新建config 重点
在默认的.ssh文件夹下新建config文件, 没有后缀, 就叫config. 我的路径是: /Users/kirin/.ssh
, 建好的文件路径是: /Users/kirin/.ssh/config
.
- 这里在于
Host
和HostName
, 这个要按照git@github.com:kirin/practice-demo.git
@与:之前来填写. 这里就是github.com
, 其他的触类旁通吧! - IdentityFile 是刚刚生成的私钥的路径.
- PreferredAuthentications 这里我们填选
publickey
, 即以公钥方式认证. - User 暂时不知道干啥用的..
# 配置github.com
Host github.com
HostName github.com
IdentityFile /Users/kirin/.ssh/id_rsa
PreferredAuthentications publickey
User username1
# 配置codehub.example.com
Host codehub.example.com
HostName codehub.example.com
IdentityFile /Users/kirin/.ssh/id_codehub
PreferredAuthentications publickey
User kirin
最后测试
[~/.ssh]$ ssh -T git@codehub.example.com
Welcome to GitLab, xxx
然后就好了
遇到的问题:
- 改填私钥的地方填了公钥, 他会和你说 "你的私钥没有受到保护!", 私钥按理来说应该是只有所有者才能读的. 但是你填了公钥(默认权限644), 导致其他人也能读了, 这么说也就不安全了. 如果遇到这个提示, 注意看下是不是自己的秘钥写错了. 错误提示在下面👇:
错误提示:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/kirin/.ssh/id_codehub.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.