[Mac] 使用 SSH 来连接到 GitHub

如果你是第一次设置 SSH,那么一共有如下 5 个步骤:

  1. 在本地生成一个新的 SSH key;
  2. 把新生成的 SSH key 添加到 ssh-agent;//这样你之后使用 SSH 的时候不用每次输入 passphrase
  3. 把新生成的 SSH key 添加到 GitHub;
  4. 检查 SSH key 是否可用;
  5. 使用 SSH key。

如果你以前就生成过 SSH 密钥,那你可以直接从第二步走,只不过把“新生成的 SSH key”的名字换成你本地已有的 SSH key 的名字 (.pub 文件的名字)。

下面详细介绍。

1. 在本地生成一个新的 SSH key

如果你是第一次生成 SSH key,那么你在 ~/Users/用户名/ 目录(这里的"用户名"是你 Mac 账户的名字)下不会有一个隐藏文件夹 .ssh。不用担心,在你生成 SSH key 的时候,这个目录会自动创建。但是如果你以前生成过 SSH key,那么这个目录是一定存在的,所以你可以在 Terminal.app 中输入 ls -al ~/.ssh 指令来鉴别你是否有历史的 SSH key。

现在讲如何生成 SSH key。

  1. 打开 Terminal.app;
  2. 输入 ssh-keygen -t rsa -b 4096 -C "你的邮箱地址"。例如,ssh-keygen -t rsa -b 4096 -C "123456@qq.com"
  3. 当出现 "Enter a file in which to save the key," 的时候,按 return 键;
  4. 当出现 "Enter passphrase (empty for no passphrase)" 的时候,输入一串密码,这串密码是操作 repo 的时候用的,而不是你的 GitHub 账号密码。输入完成后按 return 键,在此输入以确认。如果你不想设置 passphrase,那就直接按两次 return 键。
  5. 提示 "Your identification has been saved in..." "Your public key has been saved in..." "The key fingerprint is: xxx" "The key's randomart image is: xxx" 这就完成了。

一般而言,SSH key 是以下 .pub 文件的样子:

id_rsa.pub
id_dsa.pub // DSA 密钥在 OpenSSH 7.0 的时候被废止了。如果你的操作系统使用 OpenSSH,那你需要用另一种密钥格式来设置 SSH,比方说本次使用的 RSA 密钥。
id_ecdsa.pub

如果你是第一次生成 SSH key,在你生成之后,你会看到 .ssh 目录下有两个文件:"id_rsa" 和 "id_rsa.pub"。

进入 .ssh 目录的方式:在 Finder.app 下同时按下 Shift Command G,输入 ~/.ssh
默认显示隐藏文件(夹)的指令:在 Terminal.app 输入 defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder
默认不显示隐藏文件(夹)的指令:在 Terminal.app 输入 defaults write com.apple.finder AppleShowAllFiles No && killall Finder

2. 把新生成的 SSH key 添加到 ssh-agent

很简单,在 Terminal.app 中继续按以下步骤输入代码。

  1. 首先输入 eval "$(ssh-agent -s)" 返回 "Agent pid ..." 就算成功;
  2. 其次输入 ssh-add -K ~/.ssh/id_rsa 返回 "Identity added: /Users/用户名/.ssh/id_rsa (/Users/用户名/.ssh/id_rsa)"就算成功,这里的"用户名"是你 Mac 账户的名字。

3. 把新生成的 SSH key 添加到 GitHub

首先要复制刚刚生成的 SSH key 的内容:

在 Terminal.app 中输入 pbcopy < ~/.ssh/id_rsa.pub

然后在 GitHub 网页端,进入个人页面,点击右上角头像->Settings,进入设置页面,点击左栏里的 "SSH and GPG keys",点击在右上角的 "New SSH key"。在 Key 一栏内同时按下 Command V,将刚刚复制了的内容原封不动拷贝到框内(不要对框内内容做任何修改),然后直接进入 Title 一栏取一个你喜欢的名字(不能含有中文字符),例如 "MacBook Pro"。然后点击 "Add SSH key",完成添加。

4. 检查 SSH key 是否可用

继续在 Terminal.app 中输入:

ssh -T git@github.com //注意,这个地方不能换邮箱,就要写 git@github.com

正常情况下会得到:"The authenticity of host 'github.com (192.30.253.112)' can't be established. RSA key fingerprint is xxxxxxxxxx. Are you sure you want to continue connecting (yes/no)?"。输入 yes,按 return,得到 "Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts. Hi xxx! You've successfully authenticated, but GitHub does not provide shell access." 这样子就代表 SSH 可以用。

5. 使用 SSH key

可以试着在 Xcode 里面将本地工程文件托管到 GitHub 上,记得在下图的位置选择 "Clone Using SSH",把 SSH key 选择成正确的 key。如果能够正确的 push 和 pull,那就说明 SSH 在正常使用,至此 SSH 配置完成。

P.S. 如果在配置过程中遇到了一切奇奇怪怪的问题,请看这个网页。如果你想进一步操作 passphrase,请看这个网页

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • 转自:http://www.cnblogs.com/heyonggang/p/3462191.html 提起git...
    Vicent_Z阅读 676评论 0 1
  • GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界...
    YHWXQ简简单单的生活阅读 87,921评论 3 37
  • 前言: 提起github相信大家都不会陌生,在这里就不再过多进述了。作为开源代码库以及版本控制系统,使用好了确实会...
    苏村的南哥阅读 2,290评论 2 3
  • 唉,谈恋爱的哥哥,真是有了妹子忘亲妹!我要吐槽! 自从我哥谈了女朋友后,我的地位直线下降!而且还是以很快的速度呈流...
    丁盏合阅读 166评论 11 2
  • 1. 我从成都回来,坐的是那天最晚的航班,越晚越省钱。 双流机场也不再像白天那样人头攒动。 2. 坐飞...
    黄鸥Marzo阅读 711评论 0 1