设置Github中的仓库使用ssh的方式提交代码

前言

最近fork了一个Github上别人的仓库需要编译一个pjsip的so库出来,需要修改一下编译的脚本文件,每次修改之后想把变动push到远程,git每次push都需要输入用户名密码,很麻烦,于是查了查如何解决,最后找到了问题所在:我clone 仓库使用的https的方式,提交代码的时候也是这个方式,改成ssh方式提交即可,下面记录一下Github中的仓库使用ssh提交代码的整个过程。

SSH用到的公私钥

首先确保当前用户的home目录(我的用户名是of,所以我这里的home目录就是/home/of,啰嗦一下,想当年我是纯小白就不清楚这个home到底是啥)下是否有我们需要的公私钥对文件没有就生成一下,生成使用的命令:

ssh -keygen -t rsa -C "[email protected]"

说明:上面命令中 "[email protected]"这个是我自己的邮箱(这个邮箱只是git提交代码用于记录的,没有要求一定是Github的注册邮箱,我的注册邮箱是 [email protected])。

执行完上述命令之后,接下来的过程中会有两次需要输入 passphrase 的步骤(一次输入一次确认),这里可以不填直接Enter即可(我这么干的,你愿意输入输入也行,只要两次一致即可),整个运行结果如下:

of@aolphn:~$ ssh-keygen -t rsa -C "[email protected]"                                                             Generating public/private rsa key pair.
Enter file in which to save the key (/home/of/.ssh/id_rsa):
Created directory '/home/of/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/of/.ssh/id_rsa.
Your public key has been saved in /home/of/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:LHcqMK8GY3NLarkNgWL9M7iI9pwCQvH3ShcpO6Qs3N4 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|                 |
| .               |
|  o     .        |
| o.. + +         |
|=.+.* = S .      |
|=o===B = o       |
|o.+Xo=* .        |
|.o*+=Eo.         |
|oo+Bo            |
+----[SHA256]-----+

好了,这里我们就生成了我们需要 的公钥文件 id_ras.pub,我们切换目录到.ssh,查看这个文件的内容。

of@aolphn:~/.ssh$ ls                                                                                                    id_rsa  id_rsa.pub
of@aolphn:~/.ssh$ cat id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYc/B+9YyTa/fCyEATslI0SHol0aL8F9BfhRPbvHJUKXgSZpZ2hUnI9wMFhD1XiEeUfJXSFrX8teQwFsxxcmitiFPSIIy2mLLpHvEUTK7cldSfN97sWDZ7rkaGOrRq+euqeTyjeIWNz0BEPbEmAQlfbbQZ/ErbVkd+AbP8+2ADsZK7qjppp44e4XjGUyn3vRwA2TqiyGJZMeoHQ53XAsjFR3kbbDvrqeTQWiMnvgST/E0Poy3GGXG1bgN+L/Wp4w9r85SmeGUjrJXuctsxRlqR7I/TukSKhTMvSk3X/sDMU7sR5dgnSf4bstDIKT/UDfHx1eaTIAhxHGqeJPJoHaqD [email protected]

说明cat输入的结果里从 ssh-ras… 开始到最后的邮箱地址 [email protected] 都是该公钥文件的完整内容,我们把他复制到系统剪贴板。

给自己的Github账号导入SSH公钥

设置Github中的仓库使用ssh的方式提交代码_第1张图片
点击 Settings

设置Github中的仓库使用ssh的方式提交代码_第2张图片
点击SSH and GPG keys之后在下面的界面充导入新的SSH key(下图我是导入之后才开始写Blog的,所以可以直接看到已经存在一个SSH key了,没关系,你只需要点击那个【New SSH key】即可)

设置Github中的仓库使用ssh的方式提交代码_第3张图片

点击【New SSH key】之后出现以下界面

设置Github中的仓库使用ssh的方式提交代码_第4张图片

这里有两个部分【Title】和【Key】

  • Title 自己随便起个名字即可
  • Key 是前面复制到剪贴板的内容(id_ras.pub的完整内容),直接粘贴进来。

最后点击【Add SSH Key】按钮完成添加

这就完了?
设置Github中的仓库使用ssh的方式提交代码_第5张图片
还差最后一步

本次仓库的提交方式从https改为ssh

进入当前仓库的.git目录修改config文件。
修改之前:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = https://github.com/aolphn/pjsip-android-builder.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

修改之后

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = [email protected]:aolphn/pjsip-android-builder.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

变化了的内容
就是把[remote “origin”]中的url 由 https://github.com/aolphn/pjsip-android-builder.git改成了 [email protected]:aolphn/pjsip-android-builder.git.

参考链接1:https://git-scm.com/book/zh/v1/服务器上的-Git-生成-SSH-公钥
参考链接2:https://blog.csdn.net/u010003835/article/details/78816481

有问题欢迎WX交流:ofing2011。

你可能感兴趣的:(Git,Git,SSH)