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