给Mac重装了系统, 之前的所有设置都没了.在安装了sourcetree之后在公司的gitlab上添加好创建的ssh key的公钥. 但是在拉取和推送的时候总是报Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)
.这样的错误!
而且在.ssh
目录下执行完ssh-add ~/.ssh/id_rsa
或者ssh-add -K ~/.ssh/id_rsa
之后, 每次重启都要重新执行一下这样的命令才行, 这显然是无法忍受的.
看了在网上看了很多文章都无法解决
后来在这里找到了解决办法:https://www.shintaku.cc/posts/ssh-add/
现摘录如下:
自从macOS升级到Sierra 10.12以后ssh-agent
不会自动加载密码短语了,每次重启后ssh登机器时总是提示输入密钥的密码短语,所以每次开机都要用ssh-add -K ~/.ssh/id_rsa
将它手动添加到钥匙串中才行。
后来在GitHub找到了解决方案,其实就是简单配置了一下~/.ssh/config
:
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/github_rsa
用IdentityFile指定要自动添加的密钥即可。
现在终于可以愉快的coding了!
补充:
假如你拿到的是一台全新的机器, 那么你要按照下面的操作步骤进行:
- 生成sshkey
- 执行
ssh-add ~/.ssh/id_rsa
将sshkey
添加到sourceTree - 执行
ssh-add -K ~/.ssh/id_rsa
将sshkey
添加到钥匙串 -
cd
到.ssh
目录下, 用touch config
命令创建config
文件 - 执行
open config
, 打开config文件. - 输入上面的配置内容, 保存·
config
文件
以后每次启动电脑source tree都会自动加载sshkey.