轉自 簡書技術博客:https://www.jianshu.com/p/a3b4f61d4747
- 聯系管理員開通ssh功能;
- 重新創建環境;
- 下載工具包到本地機器wsCli 0.4
- 解壓后,把相應的wsCli程序放在系統目錄下(比如windows是C:\Windows下,linux/macOS放在/usr/local/bin下);
- 先安裝git ,然后右鍵進入git bash
- 然后執行命令 , ssh-keygen -t rsa 生成 ssh key
- 將生成的id_rsa.pub的內容到 服務器 里並且 修改.ssh目錄和相關文件的權限:
mkdir -p ~/.ssh
echo "{你的id_rsa.pub中的所有內容}" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
回到服務器首頁,拷貝ssh連接開發環境命令,在你自己電腦上執行即可(windows可以在git-bash或mobaxterm里執行)
git ssh
-
本地PC操作
- 打開git bash, 輸入以下命令生成一對公私鑰
ssh-keygen -t rsa
生成的文件有id_rsa(私鑰)、id_rsa.pub(公鑰)
- 打開git bash, 輸入以下命令生成一對公私鑰
-
遠程git服務器
- 在用戶主目錄下,如用戶名
wenzhu,則在/home/wenzhu目錄下新建一個.ssh(注意前面有個點) - 修改
.ssh文件夾的權限為700chmod 700 .ssh - 新建名為
authorized_keys的文件,修改權限為600chmod 600 authorized_keys - 將本地PC生成的公鑰文件的內容復制到
authorized_keys后面,這樣就算配置完成了。 - 如果有新的PC需要連接該git服務器,按照步驟1生成公私鑰,只需要將公鑰復制到
authorized_keys就可以了。
- 在用戶主目錄下,如用戶名
-
使用SSH連接git服務器
可以使用以下客戶端進行連接- SecureCRT是一個功能強大的終端仿真器,下載鏈接: http://securecrt-32bit.softonic.cn/
- putty是一個輕量級的SSH和Telnet客戶端,下載鏈接:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
一、安裝環境
1、本機系統:Windows 10 Pro(64位)
2、Git版本:Git-2.11.0-64-bit.exe(64位)
二、Git安裝
去官網下載完后一路下一步完成安裝,如下圖:
安裝完后先在系統環境變量中看下是否配置
然后在桌面右擊鼠標,選擇Git bash here,然后輸入下面代碼:
git --version #驗證git是否安裝成功,輸出版本號就代表安裝成功
如下圖:
安裝完成有配置一下全局的用戶名和郵箱,輸入如下命令:
git config --global user.name "自定義用戶名" git config --global user.email "郵箱"
使用如下命令可以取消全局設置:
git config --global --unset user.name git config --global --unset user.email
三、Git生成單個SSH key及管理生成的多個SSH Key
1、生成單個SSH Key,輸入下面的命令【命令說明】
ssh-keygen -t rsa -C "yourmail@gmail.com"
生成單個SSH Key時可以連續回車,不輸入密鑰文件名字和密碼
生成后會在【C:\Users\用戶名.ssh】下產生兩個文件,如圖:
2、管理git生成的多個ssh key
<strong>問題說明</strong>
當有多個git賬號的時候,比如一個github,用於自己進行一些開發活動,再來一個gitlab,一般是公司內部的git。這兩者你的郵箱如果不同的話,就會涉及到一個問題,生成第二個git的key的時候會覆蓋第一個的key,導致必然有一個用不了。
<strong>解決方法</strong>
我們可以在【~/.ssh】目錄下新建一個config文件配置一下,就可以解決問題
<strong>具體步驟</strong>
<ul><li>生成第一個ssh key(這里我用的是github的郵箱)</li></ul>
ssh-keygen -t rsa -C "yourmail@qq.com"
進入【C:\Users\用戶名.ssh】,點擊鼠標右鍵-選擇Git bash here,這一步很重要,不然在下面輸入密鑰名稱的時候,會將密鑰生成在當前打開git bash的路徑下,比如我在桌面打開的git bash,就會生成在桌面上,當然也可以在輸入名稱前將路徑補全。如下圖:
這里我沒有一路【回車】而是給生成的密鑰命名為【id_rsa_github】,下面連續兩次回車,沒有給密鑰設置密碼(看個人需求)
<ul><li>生成另一個ssh key(這里我用的公司郵箱)</li></ul>
ssh-keygen -t rsa -C "yourmail@glanway.com"
生成后的文件如下圖所示:
<ul><li>執行ssh-agent命令</li></ul>
ssh-agent就是一個密鑰管理器,運行ssh-agent以后,使用ssh-add將私鑰交給ssh-agent保管,其他程序需要身份驗證的時候可以將驗證申請交給ssh-agent來完成整個認證過程
<ul><li>添加私鑰</li></ul>
ssh-add ~/.ssh/id_rsa_github ssh-add ~/.ssh/id_rsa_gitlab
在執行上面的添加私鑰命令時,如果出現如下錯誤:
解決方法如下:
1、輸入如下命令查看已開啟的ssh-agent線程
ps aux | grep ssh
執行如下命令殺死線程:
kill -9 線程號
進入用戶名目錄下的.ssh目錄,打開git bash,執行如下命令
exec ssh-agent bash eval ssh-agent -s ssh-add ./id_rsa_github
在執行【ssh-add ./id_rsa_gitlab】將第二個私鑰添加進去
<ul><li>創建並修改config文件</li></ul>
1、創建config文件,將文件創建在【.ssh】目錄下
①在windows下新建一個txt文本,然后將名字改成config(包括.txt后綴)
②在git bash下,直接touch config即可創建一個config文件
2、編輯config文件,修改如下內容:
# gitlab Host gitool.glanway.com HostName gitool.glanway.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_gitlab User yangjie # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_github User yangjie
配置文件說明:
每個賬號單獨配置一個Host,每個Host要取一個別名,每個Host主要配置HostName和IdentityFile兩個屬性即可
Host的名字可以取為自己喜歡的名字,不過這個會影響git相關命令
例如:
Host mygithub 這樣定義的話,命令如下,即git@后面緊跟的名字改為mygithub
git clone git@mygithub:PopFisher/AndroidRotateAnim.git
就相當於你配置的HostName真正的域名,映射成了Host后面的配置的名字
HostName #這個是真實的域名地址 IdentityFile #這里是id_rsa的地址 PreferredAuthentications #配置登錄時用什么權限認證--可設置publickey,password publickey,keyboard-interactive等 User #配置使用用戶名
【注意】不要在配置文件中添加下面這樣的注釋
HostName git.glanway.com //這里填你們公司的git網址即可
這種注釋在讀取該配置文件時會導致報錯,不被識別
3、將公鑰添加到github和gitlab上
4、測試
看到如下輸出表示配置成功
ssh -T git@github.com #測試github ssh -T git@gitool.glanway.com #測試gitlab
作者:指間的Coding
鏈接:https://www.jianshu.com/p/a3b4f61d4747
使用git的遠程倉庫,生成秘鑰,遇到的問題

如何處理呢?
1.找到Git/usr/bin目錄下的ssh-keygen.exe(如果找不到,可以在計算機全局搜索)
2.屬性-->高級系統設置-->環境變量-->系統變量,找到Path變量,進行編輯,End到最后,輸入分號,粘貼復制的ssh-keygen所在的路徑,保存;
重新cmd,執行ssh-keygen,成功!

tips:如果不想添加到環境變量,只想臨時使用,可以在Git/usr/bin目錄下直接執行 ssh-keygen的命令,因為系統會優先在當前路徑下查找ssh-keygen.exe
---------------------
原文:https://blog.csdn.net/zy_281870667/article/details/50443403
