ssh全稱是Secure Shell,即安全Shell,是一種可以進行安全遠程登錄的協議,在Linux中以OpenSSH為代表,Windows中則有Putty作為實現。ssh的會話建立階段類似TCP協議的三次握手,里面涉及到利用非對稱加密(RSA/DSA)和密碼協商(diffie-hellman,用於生成加密會話的對稱密碼)等密碼學知識,暫且不表,客戶端的識別(Identity)與授權(Authority)涉及到傳統password或者公私鑰機制,與git多賬戶密切相關,接下來敘述ssh客戶端授權機制。
1. 生成新ssh key
如果又多個倉庫 分別生成密鑰對
cd ~/.ssh/ ssh-keygen -t rsa -C 'qc_6xxxxx@git.code.tencent.com' -f id_rsa_tencen
2. 上傳公鑰到git倉庫提供商
3. 配置config用來區別使用不同倉庫
# /etc/ssh/ssh_config 中 # Host * 下面的所有選項都可以在這里使用
cd ~/.ssh/ vim config #寫入Host tencode
HOSTNAME git.code.tencent.com User git PreferredAuthentications publickey IdentityFile id_rsa_tencent Host alicode HOSTNAME code.aliyun.com User git PreferredAuthentications publickey IdentityFile id_rsa_aliyun
4. 添加遠程倉庫的時候要注意了。 不能是用服務商提供的地址git@code.aliyun.com:xxxx
應該用 git@alicode 來替換 code.aliyun.com 這個域名其它不變。
enjoy!