前言
這邊主要是針對使用SSH方式進行Git操作,因為有時候會遇到需要使用SSH方式進行操作,因此這邊紀錄一下。
什麼是 SSH(Secure Shell)
SSH(Secure Shell)是一種網路協議,用於安全地在網絡上進行數據通信、遠程訪問和遠程管理。SSH 的目的是通過加密和認證機制來保護網絡通信的安全性,特別是在不受信任的網絡中進行數據傳輸。
遠程登錄(Remote Login):SSH 允許用戶從遠程位置(例如家中或辦公室之外)安全地登錄到遠程服務器或計算機上,並在遠程計算機上運行命令。
文件傳輸(Secure File Transfer):SSH 提供了安全的文件傳輸機制,允許用戶在本地計算機和遠程服務器之間傳輸文件,這種機制通常用於上傳或下載文件。
遠程管理(Remote Management):系統管理員可以使用 SSH 遠程管理遠程服務器或設備,包括配置、監控和維護。
安全性
加密(Encryption):SSH 使用加密算法對數據進行加密,使得數據在傳輸過程中無法被未經授權的第三方窺探或修改。
身份驗證(Authentication):SSH 使用公鑰加密和私鑰解密的技術,允許用戶通過憑證來證明自己的身份,從而防止未經授權的訪問。
如何使用SSH
這邊主要是使用Git Bash 進行操作,首先需要進入到Git Bash 進行操作,這邊會有兩種方式進行操作。
一、ssh-keygen指令
ssh-keygen 是一個用於生成 SSH 密鑰對的工具,它允許用戶生成用於身份驗證的公鑰和私鑰
參數
-t <keytype>
:指定要生成的密鑰類型。常用的類型包括 rsa(默認)、dsa、ecdsa 和 ed25519。-b <bits>
:指定 RSA 密鑰的位數。默認值是 2048。-C <comment>
:添加一個註釋,通常用於識別該密鑰的用途。-f <filename>
:指定要保存生成的密鑰文件的路徑和文件名。-N <passphrase>
:為私鑰加上密碼短語,增加安全性。-q
:靜默模式,生成過程中不顯示進度。-E <hash>
OpenSSH 7.2 及更高版本)。-F <hostname>
:檢查特定主機的 known_hosts 文件,用於查找指定主機的密鑰。-l
:列出指定密鑰文件的指紋(fingerprint)。-B
:顯示指定密鑰文件的 bubblebabble 格式。
二、使用Git Bash 進行操作
- 首先進入到Git Bash 進行操作,輸入以下指令。
1
ssh-keygen
- 如果沒特別指定路徑預設(C:\Users\使用者名稱/.ssh/id_rsa),沒有特定指定密碼可以直接按下Enter。
三、使用Git SSH Key
使用 SSH KEY 使用 id_rsa.pub 檔案內容即可。
Gitlab
- 首先進入到Gitlab,點選右上角的頭像,點選Settings。
- 點選左邊的SSH Keys,將剛剛產生的SSH Key 貼上,並且輸入Title,點選Add key。
Github
首先進入到Github,點選右上角的頭像,點選Settings。
點選左邊的SSH and GPG keys,點選New SSH key。
將剛剛產生的SSH Key 貼上,並且輸入Title,點選Add SSH key。
加入後會看到如下畫面。