最近换了台新电脑, MacBook pro,拿到新电脑之后小小心喜了一下(终于解脱windows的束缚拥抱mac啦), 然后就开始苦逼的安装各种开发环境了。

之前在windows上使用tortoiseGit作为git客户端,使用putty作为ssh代理工具获取公司自己搭建的私有git服务器上, putty下的秘钥文件格式为*.ppk,这样在拉取项目时只需要手动添加ppk到putty中就行了。

然而并没有mac版的torisegit,决定选用sourcetree作为git客户端,但sourcetree只支持github和bitbucket平台,并不支持基于ssh协议的远程git仓库,无奈只能决定从终端配置ssh秘钥, 然后再用soucetree拉取。

场景:

  MacOS High Sierra:  10.13.2

  git: v2.16.2

  souretree:2.7.1

由于Mac基于unix,而linux和unix自带的实现ssh协议的工具是openSSH,openSSH的秘钥格式为*.pem, 所以,要想使用windows的ppk文件, 需要把ppk文件转换为pem文件,然后连接即可。

有两种方式可将ppk文件转换为pem文件,1 在windows下使用puttygen下转换, 2 在mac下使用putty转换,现介绍第二种方法,

  1. 在mac终端中使用homebrew安装putty(homebrew是mac下的包管理器)$ brew install putty, 同时会安装puttygen

  2. 转换:  $ puttygen xxx.ppk -O private-openssh -o xxx.pem

  3. 在 ~/.ssh/文件夹中建立config文件, 无后缀名,输入一下内容

    

Host alias # 别名
HostName git.company.com #ip地址或域名
User git #要登录的远程git服务器的用户名,一般为git
IdentityFile /users/huxuezhi/.ssh/xxx.pem # 制定秘钥文件的位置
IdentitiesOnly yes # 可写可不写,表示只用秘钥文件认证

  然后就可以在终端里访问git仓库了,

    使用: git clone git@alias:some_repo.git

  是不是可以正常拉取了。

回到sourcetree,直接从URL新建仓库, 输入git@alias:some_repo.git或git@git.company.com:some_repo.git,就可以直接拉取了,好了,赶快开始你愉快的开发吧。

总结: 在困惑一件事情的时候要弄清楚与它相关联的其他技术,这样才能全面的考虑问题原因,精确找到答案,缩短困惑时间,提升幸福感。

Mac下使用终端连接远程使用ssh协议的git服务器的更多相关文章

  1. debian下使用gitosis+gitweb搭建SSH认证的git服务器

    搭建完成Git服务器后,需要使用两台机器进行测试,一台机器作为服务器端server,一台服务器作为客户端client.整个系统,需要三个计算机账户,这里假设server端的账户名为git,client ...

  2. 在mac下使用终端命令通过ssh协议连接远程linux系统,代替windows的putty

    指令:ssh username@server.address.com 事例:wangmingdeMacBook-Pro:~ xxxxxxxxxx$ ssh root@XXXX.net The auth ...

  3. 搭建通过 ssh 访问的 Git 服务器

    一.Git 协议 Git 可以使用四种主要的协议来传输数据:本地传输,ssh 协议,Git 协议和 HTTP 协议. Git 使用的传输协议中最常见的就是 ssh 了.大多数环境已经支持通过 ssh ...

  4. 【C#】教你纯手工用C#实现SSH协议作为GIT服务端

    SSH(Secure Shell)是一种工作在应用层和传输层上的安全协议,能在非安全通道上建立安全通道.提供身份认证.密钥更新.数据校验.通道复用等功能,同时具有良好的可扩展性.本文从SSH的架构开始 ...

  5. mac下实现代码远程同步

    近期将办公电脑从windows换成了mac,以前一直用windows,在windows下面将代码同步到远程的开发机,zend studio有一些内置的工具,但mac下的zend stduio没有了这个 ...

  6. 15.Git四种协议-本地协议(local)、HTTP协议、SSH协议、Git协议

    1.本地协议(loacl) 最基本的协议,其远程仓库其实就是硬盘内部的一个目录(例如D:\\project).常见于团队内的人对一个共享的文件系统(例如NFS)具有访问权限,或者多人共用一台电脑的情况 ...

  7. SSH方式连接Git服务器需要注意的地方

    如何安装Git?这个我这里就不再多说了,想要了解的可以自行百度,以下文字是基于本地Git安装OK,且Git服务器可用的情况下,我的Git是GitLab 接下来开始操作 1:首先在本地生成私钥和公钥,这 ...

  8. 在linux下和Mac下如何实现快捷方式连接SSH远程服务器

    其实特别简单 在本地命令执行目录/usr/local/bin 下新建一个shell脚本 比如 #vim ssh1 写入要执行的内容连接SSH #!/usr/bin/expect -f set user ...

  9. win下使用git-bash工具进行ssh免密登录服务器

    1.ssh-keygen.exe 生成公钥私钥(.pub) 2.ssh-agent.exe bash  指定工具 3.ssh-add.exe   ****   添加私钥 OK

随机推荐

  1. Lua Table转C# Dictionary

    因为在游戏公司做web后台开发,经常会涉及到取游戏服务器的数据库里面读写各种操作. 昨天下午,服务器那边让我读一个配置显示到后台,让运营大佬们可以在web后台配置游戏参数. 本来以为很简单个事情,结果 ...

  2. Ubuntu版本更替所引发的“血案”

    Ubuntu版本更替所引发的"血案"       今天,我兴致很高的装了双系统,并且配置了Linux的网络,接下来就是安装一些软件,来实现我想达到的功能了,结果被一个小小的命令卡的 ...

  3. caffe︱cifar-10数据集quick模型的官方案例

    准备拿几个caffe官方案例用来练习,就看到了caffe中的官方案例有cifar-10数据集.于是练习了一下,在CPU情况下构建quick模型.主要参考博客:liumaolincycle的博客 配置: ...

  4. Android热修复(动态加载)方案汇总

    整理了以下动态加载的方案,便于在项目中使用时查阅: Dexposed github (https://github.com/alibaba/dexposed) AndFix github (https ...

  5. BIOS简介

    BIOS简介: BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统".其实,它是一组固化到计 ...

  6. dojo CsvStore简介

    dojox.data.CsvStore 作者:Jared Jurkiewicz 版本:V1.0 CsvStore是由dojo提供的简单的只读存储,并且是包含在dojox项目中的.CsvStore是读取 ...

  7. 部署Java Web项目报错(二)

    在编写HighCharts折线时,并且数据源是请求CSV,运行项目时出现错误 Uncaught TypeError: Cannot read property 'prototype' of undef ...

  8. Tomcat中的Context.xml的<Loader delegate="true"/>

    Tomcat中的Context.xml的<Loader delegate="true"/> 1.<Loader delegate="true" ...

  9. js中的回调函数的理解

    一,常见的但是不是特别注意的回调方法. 1.1,ajax $.ajax({ url:"test.json", type: "GET", data: {usern ...

  10. 主流nosql数据库对比

    目前开源的NOSQL数据库有,Redis,Tokyo Cabinet,Cassandra,Voldemort,MongoDB,Dynomite,HBase,CouchDB,Hypertable, Ri ...