?? 當我們在提交代碼時,需要做的第一件事,就是讓我們可以連接到遠程倉庫服務器,也就是需要我們知道遠程服務器地址、證明我們的身份,登錄到遠程服務器中,
?? 這其實就是一次ssh連接,那我來講ssh吧,
?? 我們可以使用ssh user@hostname -p port進行ssh連接,然后輸入密碼,這里需要記住的有4個資料,他們是:遠程服務器IP、遠程服務器SSH埠號、用戶名、密碼,下面讓我們來逐一分析(順序被打亂了):
- 遠程服務器IP,可以通過修改C:\Windows\System32\drivers\etc中host檔案解決,這在本機 niginx 測驗中比較常見,用一個好記的別名代替ip地址
- 用戶名和密碼,他們是一起的,用來鑒別用戶身份,這個也很好解決,可以在本地生成公鑰,私鑰,在與遠程服務器互動時,用私鑰加密資料,遠程服務器用公鑰驗證簽名,
- 遠程服務器埠號,一般是22,但是巧了,我們公司gitlab是一個自定義的,很難記住,
我們可以發現,記住4個資料很難,但是,一個服務器ssh埠號是固定的,一個賬戶的密碼是固定的,那我們是否可以只記住2個資料,剩下的2個自動填入呢?
解決方案是有的,方案就在.ssh檔案夾config檔案中
config檔案長什么樣呢?我們來看一看
# gitlab
Host gitlab.xxx.net # 別名,相當于baidu.com
Hostname gitlab.xxx.net # 主機名/地址,可以是ip、域名
Port 33363 # 埠號
User season # 用戶名
PreferredAuthentications publickey # 加密方式-公鑰
IdentityFile C:\Users\season\.ssh\id_rsa_xxx # 加密檔案
# gitee
Host gitee.com
Hostname gitee.com
User season-gitee
Port 22
PreferredAuthentications publickey
IdentityFile C:\Users\season\.ssh\id_rsa_gitee
??一個config檔案中,可以配置多條、使用#注釋
??config檔案中,包含了:服務器地址+埠號、用戶名+驗證資訊(密碼之類),這樣子就可以解決我們之前說的資料太多不容易記住、不方便管理的問題,
??然后將我們的公鑰配置到遠程服務器中,ssh的相關操作就完成了,此時可以用ssh -T [email protected]進行測驗
??此時雖然測驗成功,但是有一個問題,需要我們進行解決,那就是git中的用戶名和密碼還沒進行配置,這很簡單,配置一下就行,
??分別配置用戶名、密碼,可以配置全域的,也可以根據專案配置,如果用戶資訊都是一樣的話,配置全域的;如果不同的賬戶對應不同的用戶資訊,那就老老實實根據專案配置
// 當前用戶
$ git config --global user.name season
$ git config --global user.email [email protected]
// 當前專案
$ git config user.name season
$ git config user.email [email protected]
說在最后:
- .ssh檔案夾、config檔案可能沒有,需要手動添加,
- 生成密鑰的命令是
ssh-keygen -t rsa -C "[email protected]", - config檔案中的user,在git中是沒用的,git只關心密鑰,密鑰可以做到驗證用戶資訊,所以用
ssh -T測驗時,不管user寫的是啥,都會回傳歡迎xxx,這個名字一般是賬戶名, - 其實公鑰還是有比中100E彩票還要小的幾率,但是我們不能認為絕對不會發生,但是這遠比使用密碼安全,不是嗎?
完工,撒花
參考:
ssh的用戶組態檔config管理ssh會話
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/282544.html
標籤:其他
上一篇:資料結構
下一篇:ssh連接git
