返回

利用git生成SSH并与github连接

注意事项

  • 在开始菜单,需要使用管理员模式打开git bash
  • 在linux操作中(比如git)粘贴操作是shift+insert或单击鼠标的滚轮。而复制只要选中即可。(粘贴后修改就很麻烦了,推荐先修改好再粘贴)

生成SSH账号密码

如果你是第一次使用,可以先设置git的user name和email:

git config --global user.name "这里改成你的名字"
git config --global user.email  "这里改成你的邮箱"

接下来即可生成ssh密钥:(注意别把$和#注释部分也给复制进去了,只需要复制考虑$后面的部分)

$ ssh-keygen -t rsa -b 4096 -C "这里改成你的邮箱"
# -t 密钥方式设定
# -b 密钥强度设定
# -C 注释设定

# 你会看到出现以下信息:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ts/.ssh/id_rsa): /Users/ts/.ssh/id_rsa_github # 此时输入你的密钥用户名(可以是邮箱)
Enter passphrase (empty for no passphrase):  #此时输入你的密钥密码
Enter same passphrase again:  # 再次输入密码
#以防万一忘记账户密码,你可以记在其他地方

#看到以下信息,便说明你大概率生成成功
Your identification has been saved in id_rsa_github.
Your public key has been saved in id_rsa_github.pub.

接下来需要检查我们是不是真的生成成功:

$ ls -l ~/.ssh
#如果你看到以下信息,就说明已生成成功(没看到config也没关系)
-rw-------  1 ts  staff   938  9 15 22:53 config
-rw-------  1 ts  staff  3326 11  8 21:52 id_rsa_github #私密密钥
-rw-r--r--  1 ts  staff   757 11  8 21:52 id_rsa_github.pub #公开密钥 注意这个要用记事本模式打开,然后在下一步骤中粘贴

注意,这时候可能找不到密钥,但在文件夹中又看得到rsa密钥文件,此时可以在不同文件夹(可能生成在某个子类文件夹内)右键打开git bash再输入上述命令,直到能出现以上信息为止。【记住此时的文件夹,在第四步还有用】

在github添加SSH key

这一步比较简单,在github中右上角找到settings,找到SSH and GPG keys,再选择New SSH key,把上一个步骤中的公开密钥内信息全部粘贴到key中,Title可以随便写。最后点击Add key即可完成(如果想看图文操作可以参考reference)

最后修改与验证

此时回到第二步末尾中的文件夹,输入以下代码:

$ vim ~/.ssh/config

此时已在命令行格式中进入文件,粘贴以下讯息:

Host github
  HostName github.com
  IdentityFile ~/.ssh/id_rsa_github #指定私密密钥
  User git

粘贴后(此时还在文件中),我们需要按ESC键跳到命令模式,然后输入下列指令:

$ :wq
#冒号是必须的,意思是保存文件并退出vi

最后修正权限:

$ chmod 600 ~/.ssh/config

接下来我们尝试连接,首先确认ssh-agent是否正常运行:

$ eval "$(ssh-agent -s)"

Agent pid 32047
# 出现类似信息则表示正常运行

$ ssh-add ~/.ssh/id_rsa_github

Enter passphrase for /Users/ts/.ssh/id_rsa_github: # 此时输入第二步中设定的密码
Identity added: /Users/ts/.ssh/id_rsa_github (/Users/ts/.ssh/id_rsa_github)

最后进行连接!

$ ssh -T git@github.com

Hi mackerel7! You've successfully authenticated, but GitHub does not provide shell access.
#恭喜你,当出现如上信息则表示你已经成功链接!

Reference

Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy