Ubuntu系統(tǒng)SSH免密連接Github配置全過(guò)程
一、相關(guān)介紹
1.1 Ubuntu簡(jiǎn)介
Ubuntu 是一款流行的開(kāi)源操作系統(tǒng),基于 Linux 內(nèi)核構(gòu)建,最初由 Mark Shuttleworth 創(chuàng)立的 Canonical Ltd. 在 2004 年發(fā)布。
Ubuntu 主要面向桌面、筆記本電腦和服務(wù)器用戶,提供了一個(gè)穩(wěn)定、用戶友好且功能豐富的計(jì)算環(huán)境。
1.2 Git簡(jiǎn)介
Git 是一個(gè)分布式版本控制系統(tǒng),用于跟蹤在軟件開(kāi)發(fā)過(guò)程中對(duì)文件所做的修改。
它是由 Linux 的創(chuàng)始人 Linus Torvalds 于 2005 年為了更好地管理 Linux 內(nèi)核的源代碼而創(chuàng)建的。
Git 設(shè)計(jì)的核心理念是為了高效、靈活地處理從小型到大型項(xiàng)目的版本控制。
Git 的主要特點(diǎn)包括:
分布式的版本控制:每個(gè)開(kāi)發(fā)者的工作站上都有完整的項(xiàng)目歷史記錄副本,這意味著開(kāi)發(fā)者可以在沒(méi)有網(wǎng)絡(luò)連接的情況下工作,進(jìn)行提交、分支、合并等操作。數(shù)據(jù)完整性和高效性:Git 使用 SHA-1 散列函數(shù)來(lái)標(biāo)識(shí)系統(tǒng)中的每一個(gè)對(duì)象,這保證了數(shù)據(jù)的完整性和一致性。同時(shí),Git 能夠高效地處理大型項(xiàng)目,具有快速的性能。分支和合并:Git 提供了強(qiáng)大的分支管理能力,允許開(kāi)發(fā)者輕松地創(chuàng)建和合并分支,這極大地促進(jìn)了并行開(kāi)發(fā)。
1.3 Github簡(jiǎn)介
GitHub 是一個(gè)全球最大的分布式版本控制系統(tǒng)和開(kāi)源代碼托管平臺(tái),它主要基于 Git 版本控制軟件構(gòu)建。
GitHub 提供了一個(gè)集中的環(huán)境,供軟件開(kāi)發(fā)者存儲(chǔ)項(xiàng)目代碼、跟蹤更改、協(xié)作開(kāi)發(fā)以及分享開(kāi)源項(xiàng)目。
核心功能:
代碼托管: GitHub 提供了一個(gè)地方,開(kāi)發(fā)者可以存儲(chǔ)和管理他們的代碼倉(cāng)庫(kù),無(wú)論是開(kāi)源項(xiàng)目還是私有項(xiàng)目。版本控制: 使用 Git 來(lái)追蹤代碼的變化歷史,允許用戶回滾到以前的狀態(tài)或查看修改記錄。協(xié)作工具: 包括 Pull Requests(拉取請(qǐng)求)和 Issues(問(wèn)題跟蹤),幫助團(tuán)隊(duì)成員協(xié)同工作,進(jìn)行代碼審查和討論。社區(qū): GitHub 是一個(gè)龐大的開(kāi)發(fā)者社區(qū),用戶可以相互關(guān)注、參與討論、貢獻(xiàn)代碼和文檔,以及發(fā)現(xiàn)和參與開(kāi)源項(xiàng)目。項(xiàng)目管理: 提供了項(xiàng)目板和里程碑等功能,幫助團(tuán)隊(duì)規(guī)劃和跟蹤項(xiàng)目進(jìn)展。持續(xù)集成/持續(xù)部署 (CI/CD): 通過(guò) GitHub Actions 自動(dòng)化構(gòu)建、測(cè)試和部署流程。安全和合規(guī): 包括代碼掃描、依賴關(guān)系審計(jì)和合規(guī)性工具,以維護(hù)代碼的安全和質(zhì)量。
二、本地環(huán)境介紹
2.1 本地環(huán)境規(guī)劃
本次實(shí)踐為個(gè)人測(cè)試環(huán)境,操作系統(tǒng)版本為centos7.6。
| hostname | 本地P地址 | 操作系統(tǒng)版本 | 內(nèi)核版本 | node版本 |
|---|---|---|---|---|
| ubuntu-001 | 192.168.3.251 | 22.04.1 LTS | 5.15.0-113-generic | v20.10.0 |
2.2 本次實(shí)踐介紹
1.本次實(shí)踐部署環(huán)境為個(gè)人測(cè)試環(huán)境,生產(chǎn)環(huán)境請(qǐng)謹(jǐn)慎;
2.在Ubuntu環(huán)境下通過(guò)SSH免密連接Github倉(cāng)庫(kù)。
三、檢查本地環(huán)境
3.1 檢查本地操作系統(tǒng)版本
- 檢查本地操作系統(tǒng)版本
root@ubuntu-001:~# cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.1 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.1 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy
3.2 檢查系統(tǒng)內(nèi)核版本
- 檢查系統(tǒng)內(nèi)核版本
root@ubuntu-001:~# uname -r 5.15.0-113-generic
四、Git本地環(huán)境配置工作
4.1 安裝Git工具
- 直接執(zhí)行以下命令,安裝git工具。
apt install git -y

- 查看git版本,默認(rèn)安裝版本為
2.34.1。
root@ubuntu-001:~# git version git version 2.34.1
4.2 創(chuàng)建項(xiàng)目目錄
- 創(chuàng)建一個(gè)測(cè)試項(xiàng)目目錄
mkdir -p /data/myproject && cd /data/myproject
4.3 配置用戶信息
- 配置該git的使用者
git config --global user.name "jeven"
- 配置git使用者的郵箱
git config --global user.email "123456@qq.com"
- 使文本高亮
git config --global color.ui true
- 查看git配置信息
cat ~/.gitconfig

4.4 初始化本地倉(cāng)庫(kù)
- 初始化當(dāng)前本地倉(cāng)庫(kù)
git init

五、通過(guò)SSH連接Github
5.1 安裝ssh
- 執(zhí)行以下命令啊,安裝SSH。
apt install ssh -y
5.2 創(chuàng)建密鑰文件
使用ssh-keygen生成SSH密鑰時(shí),程序首先提示確認(rèn)密鑰的保存位置及文件名,通常默認(rèn)為~/.ssh/id_rsa,按Enter接受即可。接著會(huì)讓你輸入密鑰口令,留空則無(wú)需密碼即可使用密鑰。整個(gè)過(guò)程中,只需一直按Enter接受默認(rèn)選項(xiàng)。最終會(huì)在.ssh目錄下生成id_rsa私鑰和id_rsa.pub公鑰文件。
ssh-keygen -t rsa -C "郵箱地址"

5.3 將公鑰添加到Github
- 查看并復(fù)制本地公鑰
cat ~/.ssh/id_rsa.pub

登陸到GitHub上,右上角小頭像->Setting->SSH and GPG keys中,點(diǎn)擊new SSH key。


將本地的公鑰文件復(fù)制到key下面,點(diǎn)擊“Add SSH key”。

六、上傳項(xiàng)目到Github
6.1 在本地倉(cāng)庫(kù)創(chuàng)建項(xiàng)目
- 在本地倉(cāng)庫(kù)創(chuàng)建測(cè)試項(xiàng)目
root@ubuntu-001:/data/myproject# mkdir -p ./{aa,bb,cc}
root@ubuntu-001:/data/myproject# ls
aa bb cc
root@ubuntu-001:/data/myproject# echo "hello test" > bk.txt
6.2 將項(xiàng)目文件保存在暫存區(qū)
- 執(zhí)行以下命令,將將項(xiàng)目文件保存在暫存區(qū)。
git add .
6.3 將文件保存到本地倉(cāng)庫(kù)
- 將暫存區(qū)文件保存在本地倉(cāng)庫(kù)
git commit -m "1.0 master-jeven create item for test "

6.4 添加遠(yuǎn)程倉(cāng)庫(kù)
添加自己gitHub的遠(yuǎn)程倉(cāng)庫(kù),其中倉(cāng)庫(kù)地址填寫格式為“ git@github.com:Username/Repositories_Name.git”。
git remote add origin git@github.com:awakm618/myprojetc.git
6.5 上傳項(xiàng)目
執(zhí)行以下命令,將測(cè)試項(xiàng)目上傳到Github。
git push -u origin master

6.6 檢查項(xiàng)目
在Github倉(cāng)庫(kù)中,查看剛才上傳的項(xiàng)目是否成功。

七、總結(jié)
配置SSH免密碼連接對(duì)于在Ubuntu系統(tǒng)中使用GitHub具有重要意義,它不僅提升了開(kāi)發(fā)效率,還增強(qiáng)了安全性。通過(guò)SSH密鑰對(duì)進(jìn)行身份驗(yàn)證,避免了頻繁輸入密碼的繁瑣過(guò)程,同時(shí)由于私鑰保存在本地,相比密碼認(rèn)證提供了更好的數(shù)據(jù)保護(hù)。設(shè)置SSH免密碼登錄至GitHub是每個(gè)開(kāi)發(fā)者應(yīng)該掌握的基礎(chǔ)技能,它簡(jiǎn)化了工作流程,確保了代碼提交過(guò)程的安全與便捷。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決Linux Centos yum-config-manager --add-repo添
這篇文章主要介紹了解決Linux Centos yum-config-manager --add-repo添加倉(cāng)庫(kù)添加錯(cuò)誤問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
Linux(Ubuntu 18.04)上安裝Anaconda步驟詳解
Anaconda是最受歡迎的python數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)平臺(tái),用于大規(guī)模數(shù)據(jù)處理,預(yù)測(cè)分析和科學(xué)計(jì)算。這篇文章主要介紹了Linux(Ubuntu 18.04)上安裝Anaconda的方法,需要的朋友可以參考下2018-11-11
Ubuntu20.04安裝Python3的虛擬環(huán)境教程詳解
這篇文章主要介紹了Ubuntu20.04安裝Python3的虛擬環(huán)境,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
LNAMP架構(gòu)中后端Apache獲取用戶真實(shí)IP地址的2種方法
Nginx作為前端,Apache作為后端的情況下,Apache只能獲取到Nginx前端的ip地址(127.0.0.1),而無(wú)法獲取到用戶的真實(shí)ip地址,在這種情況下,后端Apache如何獲取用戶真實(shí)IP地址?2014-03-03
淺析Linux下利用coredump技術(shù)追查進(jìn)程崩潰原因
這篇文章主要介紹了Linux下利用coredump技術(shù)追查進(jìn)程崩潰原因,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
Linux centos如何讓普通用戶獲取root權(quán)限
這篇文章主要介紹了Linux centos如何讓普通用戶獲取root權(quán)限問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05

