設置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公鑰

賬號設置
點擊 Settings

SSH設置
點擊SSH and GPG keys之後在下面的界面充導入新的SSH key(下圖我是導入之後纔開始寫Blog的,所以可以直接看到已經存在一個SSH key了,沒關係,你只需要點擊那個【New SSH key】即可)

導入SSH key’

點擊【New SSH key】之後出現以下界面

添加SSH key

這裏有兩個部分【Title】和【Key】

  • Title 自己隨便起個名字即可
  • Key 是前面複製到剪貼板的內容(id_ras.pub的完整內容),直接粘貼進來。

最後點擊【Add SSH Key】按鈕完成添加

這就完了?
否認三連
還差最後一步

本次倉庫的提交方式從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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章