---
title: 如何在Mac下配置Github和Bitbucket的SSH
date: 2017-12-23 21:10:30
tags:
- Mac
- Git
- Github
categories: Github
---

# 如何在Mac下配置Github和Bitbucket的SSH

## 第一步:生成 SSH 公钥过程

大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权,没有的话就要生成一个。生成公钥的过程在所有操作系统上都差不多。

### 1.查看是否已经有了SSH密钥

首先先确认一下是否已经有一个公钥了。SSH 公钥默认储存在账户的主目录下的 `~/.ssh` 目录。进去看看:

```
cd ~/.ssh
```

如果没有密钥则不会有此文件夹,有则备份删除

```
cp -R ~/.ssh ~/.ssh_bak
rm -R ~/.ssh
```

### 2.生成密钥

```
ssh-keygen -t rsa -C "你在Github上的邮箱"
```

第一次要输入file名字,直接回车即可,默认文件名为`id_`前缀,然后会被要求输入个密码并且确认。

## 第二步:添加密钥到SSH

```
cd ~/.ssh
ssh-add -K id_rsa
```

需要刚才生成密钥时候输入的密码。

### 在github上添加SSH Key

```
more id_rsa.pub
```

* 查看公钥里的内容并且全部复制下来(包括开头ssh-rsa和结尾邮箱)。
* 进入到`github`的`setting`,找到SSH Keys页面添加一个key,title随意,赋值公钥进去保存即可。

## 第三步:测试是否成功

```
ssh git@github.com
```

成功则返回类似:

```
Hi Seachal! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
```

### Bitbucket

[Bitbucket.org](http://bicbucket.org/)是一个和`Github`极其类似的托管库网站,但是他的私有库是免费的,所以一般我们会把私有库放到`bitbucket`上,而其他库放到`github`上,毕竟`github`的`SNS`属性稍微多些,开源的库就尽量的希望有与其他人的更多互动。
给`bitbucket`添加SSH Key实际上是一样的。
测试bitbucket ssh是否可连接

```
ssh -T git@bitbucket.org
```

成功则返回类似:

```
logged in as Seachal.

You can use git or hg to connect to Bitbucket. Shell access is disabled.
```

![1b56d6e0122ce0f0105bb1b4d61b7b68](http://images2017.cnblogs.com/blog/813822/201712/813822-20171226172852151-503778770.jpg)

如何在Mac下配置Github和Bitbucket的SSH的更多相关文章

  1. 如何在Mac下配置多个Java版本

    使用工具:brew cask brew cask是一个用命令行管理Mac下应用的工具,提供了自动安装和卸载功能,能够自动从官网上下载并安装 最新的版本,它是基于homebrew的一个增强工具. 一. ...

  2. [iuud8]如何在mac下配置cocos2dx环境

    安装后xcode之后,下载cocos2dx压缩包,解压 通过中断cd到cocos2dx目录内 输入下行命令 sudo ./install-templates-xcode.sh 运行成功后打开xcode ...

  3. iOS开发MAC下配置svn

    版本控制对于团队合作显得尤为重要,那么如何在iOS开发中进行版本控制呢?在今天的博客中将会介绍如何在MAC下配置SVN服务器,如何导入我们的工程,如何在Xcode中进行工程的checkOut和Comm ...

  4. mac下使用github

    提起github相信大家都不会陌生,在这里就不再赘述了.作为开源代码库以及版本控制系统,使用好了确实会非常受益,再说的势利点,你找工作时给面试官说你经常维护自己的技术博客和github,相信你给他的印 ...

  5. mac下使用github 上传代码

    提起github相信大家都不会陌生,在这里就不再赘述了.作为开源代码库以及版本控制系统,使用好了确实会非常受益,再说的势利点,你找工作时给面试官说你经常维护自己的技术博客和github,相信你给他的印 ...

  6. mac下配置gdb调试golang

    mac下配置gdb调试golang 原文链接 https://sourceware.org/gdb/wiki/BuildingOnDarwin Building GDB for Darwin Crea ...

  7. CAS (7) —— Mac下配置CAS 4.x的JPATicketRegistry(服务端)

    CAS (7) -- Mac下配置CAS 4.x集群及JPATicketRegistry(服务端) tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 cas版本: ...

  8. CAS (2) —— Mac下配置CAS到Tomcat(客户端)

    CAS (2) -- Mac下配置CAS到Tomcat(客户端) tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 cas版本: cas4.1.2 cas-clie ...

  9. Mac下配置多个SSH Keys

    Mac下配置多个SSH Keys 生成SSH key # Creates a new ssh key using the provided email # 默认生成的文件名为id_rsa,可以根据命令 ...

随机推荐

  1. CentOS7配置samba服务

    Step1:安装samba相关软件 [root@node-1 ~]# yum -y install samba samba-client Step2:创建共享目录 [root@node-1 ~]# m ...

  2. Python开发【第七篇】:面向对象二

    字段 class Foo:     #静态字段(保存在类中)     CC = 123       def __init__(self):         #普通字段(保存在对象中)          ...

  3. 42 【docker】run命令

    最常用的两个option是,网络端口映射,和文件共享 最基本的启动命令(从image创建一个container并启动):docker run -d <image-name> -d:表示守护 ...

  4. FortiGate安全策略说明

    1.安全策略原理 1)为了对数据流进行统一控制,方便用户配置和管理,FGT设备引入了安全策略的概念.通过配置安全策略,防火墙能够对经过设备的数据流进行有效的控制和管理. 2)当防火墙收到数据报文时,把 ...

  5. $.fn.extend() 问:我来这个世上到底是干嘛的?

    好好好 乖  本宝宝来告诉你  你来是干嘛的啊~ 话不多说 直接上码 当然如下代码是在jquery环境下运行的 HTML JS 完事~~~ 当你点击div元素的时候  你会发现弹出来“我被单击了”这句 ...

  6. Map 数据结构

    JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. 为了解决这个问题,ES6 提供了 Map 数据结构. ...

  7. springboot中使用ContextLoaderListener.getCurrentWebApplicationContext();获取WebApplicationContext为空问题

    WebApplicationContext applicationContext = ContextLoaderListener.getCurrentWebApplicationContext(); ...

  8. .net 简单任务调度平台安装简要说明

    .net 简单任务调度平台,用于.net dll,exe的任务的挂载,任务的隔离,调度执行,访问权限控制,监控,管理,日志,错误预警,性能分析等. 平台基于quartz.net进行任务调度功能开发,采 ...

  9. 【NOIP2013/Codevs3287】货车运输-最小生成树(大)-树上倍增

    https://www.luogu.org/problemnew/show/P1967 由题可知,我们走的路的边应尽可能大,所以通过kruscal建最大生成树的图,再树上倍增,注意可能有多棵树; #i ...

  10. LOJ-10102(桥的判断)

    题目链接:传送门 思路:找桥就行了,条件是num[v]<low[u],pre!=v; #include<iostream> #include<cstdio> #inclu ...