1、生成sshkey
ssh-keygen -t rsa -C "[email protected]"
2、配置多套sshkey
方案一:直接配置config文件(沒有則在~/.ssh目錄下創建)
# x.x.x.x
Host my #別名
HostName x.x.x.x #登錄主機ip或域名
User root #登錄用戶名
PreferredAuthentications publickey
IdentityFile ~/.ssh/my_rsa #私鑰地址
然後使用
ssh my #別名連接,注意:只能用別名來連接。
例如:
Host gitlab #別名
HostName gitlab.com #登錄主機ip或域名
PreferredAuthentications publickey
IdentityFile ~/.ssh/my_rsa #私鑰地址
連接:
# 不能用[email protected],因爲別名是gitlab
# 因此可以將Host和HostName寫成一樣的就好了。
git clone git@gitlab:MyProject
方案二:最粗暴,就是將本機的所有sshkey都添加到目標機中,這樣也能ssh訪問通過。
ssh-agent保存密碼
ssh-agent是密鑰管理器,運行ssh-agent以後,使用ssh-add將私鑰交給ssh-agent保管,其他程序需要身份驗證的時候默認將驗證申請交給ssh-agent來完成整個認證過程,用來幫助免密登錄。(命令說明)
如果生成sshkey時使用了密碼(一般公司裏會要求密碼),則使用ssh登錄時仍需要輸入密碼。可以將對應的sshkey的密碼交給ssh-agent管理
# 開啓ssh-agent,默認都是開啓的
ssh-agent -s # 或者 ssh-agent bash --login -i 進入bash窗口
# 將私鑰託管,同時保存密碼到鑰匙串
ssh-add -K ~/.ssh/my_rsa