1.检查ssh key 是否存在
ls -al ~/.ssh
如果key存在,会有id_rsa
和id_rsa.pub
可以直接将key复制到远程GitHub上。
如果key不存在,生成key
在命令行中输入:
ssh-keygen -t rsa -C 'your_email@example.com'
默认生成一个
密码,名称什么的都一路回车就OK了
将公有key(id_rsa.pub)复制到远程GitHub里,可以给你的key起一个名字
2.查看公钥内容(即用来做ssh key用的)
$ cat ~/.ssh/id_rsa.pub
如果id_rsa.pub文件找不到,可以在终端中使用open ~/.ssh
,打开ssh文件,可以看到id_rsa,id_rsa.pub
文件;也可以在前往中终端输入"~/.ssh"来查看是否存在id_rsa.pub文件
3.配置多个ssh-key
- 生成一个公司用的SSH-Key
ssh-keygen -t rsa -C 'youremail@yourcompany.com' -f ~/.ssh/id-rsa
在~/.ssh/目录会生成id-rsa和id-rsa.pub私钥和公钥。 - 生成一个其他用的SSH-Key
ssh-keygen -t rsa -C 'youremail@your.com' -f ~/.ssh/github-rsa
在~/.ssh/目录会生成github-rsa和github-rsa.pub私钥和公钥。 - 添加私钥
ssh-add ~/.ssh/id_rsa $ ssh-add ~/.ssh/github_rsa
如果执行ssh-add时提示"Could not open a connection to your authentication agent"
,可以先执行命令:
$ ssh-agent bash
然后再运行ssh-add命令。
ssh-add ~/.ssh/id_rsa $ ssh-add ~/.ssh/github_rsa
- 修改配置文件
若.ssh目录(就是私钥所在的文件夹)下无config文件,那么创建
touch config
在config文件添加以下内容
# gitlab
Host github.com
Port 22
HostName github.com
PreferredAuthentications publickey
IdentityFile C:/Users/xxx/.ssh/github-rsa
User xxx
- 配置文件参数
# Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件(可以直接填写ip地址)
# HostName : 要登录主机的主机名(建议与Host一致)
# User : 登录名(如gitlab的username)
# IdentityFile : 指明上面User对应的identityFile路径
# Port: 端口号(如果不是默认22号端口则需要指定)
- 测试
$ ssh -T git@github.com