Git 已經成爲咱們開發最流行的版本控制工具了,Git 支持多種傳輸協議,其中最經常使用的就是https 和 ssh,日常咱們用 https 比較多,這種方式 pull 和 push 代碼都要輸入帳戶密碼,很是不方便。那麼有沒有更加方便並且安全的方式呢?固然有!ssh 方式能夠作到這一點。git
公有 Git 服務諸如 GitHub、Gitee、Coding、Gitlab 等都提供了 ssh 功能。經過 Gitlab 、Gogs、Gitea 搭建的私有 Git 服務也都有 ssh 功能。通常咱們均可以在對應的設置 中找到。以 Gitee 爲例:算法
那麼如何生成 ssh 公鑰呢?安全
ssh 生成公鑰的算法有不少種,咱們一般使用 RSA 算法來生成密鑰對。確保你在不一樣操做系統的用戶目錄 ~/.ssh
下沒有 id_rsa
和 id_rsa.pub
,若是有就說明你已經生成了無需再生成。針對 LinuxMac 和Windows 和咱們來走一下流程。bash
命令行執行:服務器
ssh-keygen -t rsa -b 4096 -C "替換爲經常使用email地址"
後面讓你輸入密碼你能夠輸入一個,或者一路 enter 按到底直接生成。生成完畢後執行如下命令查看公鑰:ssh
cat ~/.ssh/id_rsa.pub
切記必定要帶 .pub 後綴,不然則爲私鑰。而後出現以 ssh-rsa
開頭的字符串就是公鑰:工具
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDBYgnpCY9j/xhhZO4ryy7YrJRRUXydbVUyi8dSfyn5obFD0iJhqPCF1jk5LZuryhsmy …………………(此處省略) mH1eqd4SMXO8fJoaM7JOWYSs/xgRK9bw== dax@felord.cn
若是你本地安裝有 Git Bash 方法能夠按照上面去模仿便可。 Bash 能夠去你 Git 安裝目錄找,它也是一種 Shell 操做界面。而後能夠按照 3.1 的方法生成。Window10 某個更新之後開始內置了 ssh 服務。以管理員身份打開命令行輸入 ssh
若是出現了提示命令說明你已經開啓了 ssh 服務。若是沒有則須要你手動開啓。在 應用和功能 選項中搜索 openssh 選擇客戶端或者服務器均可以:spa
安裝後須要重啓,重啓後打開命令行,輸入 ssh
進行檢查便可。而後就能夠按照 3.1 的方式生成公鑰了。操作系統
附 Win 下開啓/關閉 ssh 命令:命令行
net start sshd net stop sshd
咱們生成了密鑰對以後將 id_rsa.pub
的全部內容複製並填寫到 公鑰 一欄中配置好咱們生成的公鑰,Git 服務端就承認咱們當前的主機了。咱們就能以 git@ hostname:user/project.git
的形式進行無密碼訪問遠程 Git 倉庫了。