最近换了台新电脑, 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. Redis实现数据库读写分离

    Redis简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作 ...

  2. JavaScript递归原理

    JavaScript递归是除了闭包以外,函数的又一特色呢.很多开发新手都很难理解递归的原理,我在此总结出自己对递归的理解. 所谓递归,可以这样理解,就是一个函数在自身的局部环境里通过自身函数名又调用, ...

  3. ap module omap4460

    http://gitorious.org/ap-module-omap4460 Dashboard Register Login Activities Projects Teams ap module ...

  4. 项目总结2——mybatis配置的理解

    之前的项目基本上都是用mongodb,以至于mysql相关的知识异常薄弱,这次连续一个半月的加班,总算是实际用到了mysql,也使自己对mysql了解的更多,对mybatis了解的更多,这里就说一说经 ...

  5. Ubuntu 卸载cario-dock

    偶然间听说别人用dock 可以把ubuntu美化,结果就装了个cairo-dock .结果是苹果mac的风格.不是很喜欢.于是就卸载,卸载过程中.发行卸载不掉. 尝试了很多方法. sudo apt-g ...

  6. zTree实现地市县三级级联Service接口测试

    zTree实现地市县三级级联Service接口测试 ProvinceServiceTest.java: /** * @Title:ProvinceServiceTest.java * @Package ...

  7. Servlet.service() for Servlet jsp threw exception javax.servlet.ServletException:File "/pageFoo

    1.错误描述 Servlet.service() for Servlet jsp threw exception javax.servlet.ServletException:File "/ ...

  8. C# 文件copy和文件删除

    C# 文件copy和文件删除 public bool CopyFile(string SourcePath, string CopyPathFoder) { bool bfg = false; if ...

  9. javax顶层接口分析

    1.Servlet接口分析 此接口是Servlet的最顶层接口,其中定义了Servlet生命周期相关的方法,所有Servlet都必须实现.此接口中的方法有以下几个: public void init( ...

  10. haproxy反向代理配置示例

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...