git / 通过 ssh 与仓库通信
一、配置SSH
git 使用 SSH 配置, 初始需要以下三個(gè)步驟
- 使用 ssh-keygen 命令來創(chuàng)建密鑰對(duì), 默認(rèn)保存路徑為 ~/.ssh/ 下, 一般 id_rsa 為私鑰,id_rsa.pub 為公鑰,命令如下:
ssh-keygen -t rsa -C "e-mail name"
?Generating public/private rsa key pair.
Enter file in which to save the key
(/Users/your_user_directory/.ssh/id_rsa): (按回車鍵)
Enter passphrase (empty for no passphrase): (按回車鍵)
Enter same passphrase again: (按回車鍵)
- 使用 cat ~/.ssh/id_rsa.pub 命令獲取公鑰,然后拷貝到托管網(wǎng)頁上, 一般是 setting(設(shè)置)——> SSH Keys 里面添加
- 對(duì)于在默認(rèn)路徑 ~/.ssh/ 下生成的 id_rsa 密鑰對(duì),任何 ssh client 是可以直接讀取到,不需要額外配置
二、測(cè)試是否關(guān)聯(lián)成功
輸入:
ssh -T git@github.com
出現(xiàn)以下結(jié)果即為成功:
Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.
三、驗(yàn)證原理
SSH 登錄安全性由非對(duì)稱加密保證,產(chǎn)生密鑰時(shí),一次產(chǎn)生兩個(gè)密鑰,一個(gè)公鑰,一個(gè)私鑰,在git 中一般命名為 id_rsa.pub,id_rsa 。
那么如何使用生成的一個(gè)私鑰一個(gè)公鑰進(jìn)行驗(yàn)證呢?
- 本地生成一個(gè)密鑰對(duì),其中公鑰放到遠(yuǎn)程主機(jī),私鑰保存在本地
- 當(dāng)本地主機(jī)需要登錄遠(yuǎn)程主機(jī)時(shí),本地主機(jī)向遠(yuǎn)程主機(jī)發(fā)送一個(gè)登錄請(qǐng)求,遠(yuǎn)程收到消息后,返回一個(gè)隨機(jī)生成的字符串,本地拿到該字符串,用存放在本地的私鑰進(jìn)行加密,再次發(fā)送到遠(yuǎn)程,遠(yuǎn)程用之前存放在遠(yuǎn)程的公鑰對(duì)本地發(fā)送過來加密過的字符串進(jìn)行解密,如果解密后與源字符串等同,則認(rèn)證成功。
?
(SAW:Game Over!)
總結(jié)
以上是生活随笔為你收集整理的git / 通过 ssh 与仓库通信的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux / 终端常用快捷键
- 下一篇: 编译 / __attribute__(c