前言
最近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 and GPG keys之後在下面的界面充導入新的SSH key(下圖我是導入之後纔開始寫Blog的,所以可以直接看到已經存在一個SSH key了,沒關係,你只需要點擊那個【New SSH key】即可)
點擊【New 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。