记曲折的、为gitlab设置ssh key的道路(不用默认文件名id_rsa时要怎么设置)
本地生成ssh key
来到~/.ssh
目录下,生成ssh key
cd ~/.ssh
ssh-keygen -o -t rsa -b 4096 -C "zhansidi@foxmail.com"
自己取个名字Enter file in which to save the key (/Users/sindyjen/.ssh/id_rsa): git_id_rsa
, passphrase不设置。有两个相关文件git_id_rsa
存私钥, git_id_rsa.pub
存公钥。
因为名字不是默认的,所以要添加进ssh(用ssh-add filename
好像没法添加自定义名字的文件)。在此之前先把服务在后台跑起来。
eval "$(ssh-agent -s)"
ssh git@github.com -i /Users/sindyjen/.ssh/git_id_rsa
相应的,在config
目录下也要设置一下,添加:
Host gitlab.com
IdentityFile ~/.ssh/git_id_rsa
这样就能去git_id_rsa这个文件里找钥匙啦,也应该不会收到permission denied
错误信息了。
远端gitlab上,添加公钥
先在本地拷贝公钥
pbcopy < git_id_rsa.pub
之后到gitlab上添加(profile > setting > ssh
下面)。
添加后,在Your SSH keys
下面,有添加的fingerprint,和本地的(用以下命令列出ssh key的输出)一致。
ssh-add -l -E md5
测试(-T是测试连接,-vT的话调试会输出更多信息):
ssh -vT git@gitlab.com
这样就成功啦Authentication succeeded (publickey).
。