Mac sourcetree自动添加ssh key
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac sourcetree自动添加ssh key相关的知识,希望对你有一定的参考价值。
参考技术A 给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 :
用IdentityFile指定要自动添加的密钥即可。
现在终于可以愉快的coding了!
假如你拿到的是一台全新的机器, 那么你要按照下面的操作步骤进行:
以后每次启动电脑source tree都会自动加载sshkey.
sourceTree 添加 ssh key 方法
1.使用 git 客户的生成公私钥:id_rsa、id_rsa.pub
1.1设置Git的user name和email:
$ git config --global user.name "xxx"
$ git config --global user.email "xxx.mail@xxx.com"
1
2
1.2.生成SSH密钥过程:
1.2.1.检查是不是已经存在密钥(能进去说明已经存在,就删掉文件夹,重新创建):
cd ~/.ssh
1.3.生成 SSH 密钥:
$ ssh-keygen -t rsa -C “xxx.mail@xxx.com”
按3个回车,密码为空。
1.4.文件存放位置 ~/.ssh,如果是window的话就在:C:UsersAdministrator.ssh 下面,当然如果你不是 Administrator 用户的话,需要换成对应的用户。
2.设置 SourceTree 的 SSH客户端
1.配置SourceTree 的 SSH 客户的为:OpenSSH
1.1.工具->选项
1.2.设置 OpenSSH,这时候,SSH 密钥这一栏自然会去选择当前用户下的 .ssh 目录下的 id_rsa 这个私钥:
3.添加 ~/.ssh/id_rsa.pub 文件内容到 git 服务器里面去
3.1.比如你的 git 服务是 github,那么你需要在 https://github.com/settings/keys 里面添加 SSH key
3.2.SourceTree 来下载 git 项目
3.2.1.复制你的 git 地址:git@github.com:ztd770960436/justgame.git
3.2.2.从 SourceTree 里面新建一个地址,这时候你发现你本地已经可以下载远程的 git 代码了
4.解释:
1.ssh-keygen 是公钥私钥的非对称加密方式:
1.1.公钥:用于向外发布,任何人都能获取。
1.2.私钥:要自己保存,切勿给别人
2.公钥私钥加解密的原理
2.1.客户端把自己的公钥存放到要链接的远程主机上(相当于我们把自己的 id_rsa.pub 存放到 git 服务器上)
2.2.客户端要链接远程主机的时候,远程主机会向客户的发送一条随机的字符串,客户的收到字符串之后使用自己的私钥对字符串加密然后发送到远程主机,远程主机根据自己存放的公钥对这个字符串进行解密,如果解密成功证明客户端是可信的,直接允许登录,不在要求登录。
---------------------
以上是关于Mac sourcetree自动添加ssh key的主要内容,如果未能解决你的问题,请参考以下文章
sh 将Key Key添加到Keychain以使SourceTree在OS X上运行 - 来自http://superuser.com/questions/879050/sourcetree-ssh-