接手新项目需要把项目克隆下来,大部分都用的是http克隆的,一时突发奇想用ssh key克隆。毕竟好久没用了。
一:生成ssh key
我是用的ed25519,可以自行选择rsa,都行
ssh-keygen -t ed25519 -C "email@example.com"
or
ssh-keygen -o -t rsa -b 4096 -C "email@example.com"
二:添加 SSH key到你的GitLab account
1:使用下面的命令之一将您的公共SSH密钥复制到剪贴板
macOS:
pbcopy < ~/.ssh/id_ed25519.pub
WSL / GNU/Linux (requires the xclip package):
xclip -sel clip < ~/.ssh/id_ed25519.pub
Git Bash on Windows:
cat ~/.ssh/id_ed25519.pub | clip
2:最后将ssh key添加到你的账号里
三:克隆项目,发现报错如下:
git@xxxx.com: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
四:解决问题:
打开ssh config 里面看了看里面的内容,才发现,没有创建的ssh key对应的host配置。想起在创建ssh key过程中并没有把对应的host写进到config的操作,定位到问题所在,立马把host配进去。
1:打开config文件
2:添加配置
# --- Sourcetree Generated ---
Host xxxx-----自定义名字
HostName git@xxxx.com
User xxx-----gitlab的账号名
PreferredAuthentications publickey
IdentityFile /Users/yangjing/.ssh/id_ed25519
UseKeychain yes
AddKeysToAgent yes
# ----------------------------
五:完美解决问题
git clone ssh://git@xxxxx.com/H/xxx-xxx-xxx.git
如果写的不对的地方,还望各位简友 多多指出〜谢谢大家!