ssh linux&git密鑰免密登錄+多密鑰配置

ssh-keygen

ssh-keygen指令在win7, win10系統和linux系統均可使用

語法介紹

常規操作使用ssh-keygen --version查看使用技巧

貌似沒有查看語法的相關指令,碰巧錯誤的使用觸發這個usage顯示頁
在這裏插入圖片描述


維基百科上的簡介

在這裏插入圖片描述

生成密鑰

生成密鑰這個過程陸續的會需要用戶輸入一些必要的信息,可以Enter直接使用默認
在這裏插入圖片描述

[hsyt@hsyt004 ~]$ ssh-keygen -t rsa -C "[email protected] jenkins服務器"
Generating public/private rsa key pair.
#一般使用默認的路徑即可(這裏的路徑指代ssh密鑰的存放路徑以及名稱前綴),否則需要很多額外的配置處理
Enter file in which to save the key (/home/hsyt/.ssh/id_rsa): /home/hsyt/.ssh/id_rsa_jenkins
Created directory '/home/hsyt/.ssh'.
#這裏的密碼建議不要設置,不然每次使用密鑰都需要輸入密碼,這裏本來就是爲了免密做一些任務才設置的這個
Enter passphrase (empty for no passphrase): 
#密碼確認,不管上面設置的密碼是否有值,都需要二次確認
Enter same passphrase again: 
Your identification has been saved in /home/hsyt/.ssh/id_rsa_jenkins.
Your public key has been saved in /home/hsyt/.ssh/id_rsa_jenkins.pub.
The key fingerprint is:
43:c8:86:33:2f:9c:7a:53:3c:08:5c:c2:46:06:c7:da [email protected] jenkins服務器
The key's randomart image is:
+--[ RSA 2048]----+
|.== .            |
| ++o o .         |
| +o + + .        |
|. Eo O .         |
|    = = S        |
|   . o . .       |
|  . o            |
|   . .           |
|                 |
+-----------------+

查看密鑰

ls -l ~/.ssh/

在這裏插入圖片描述

GitLab ssh密鑰配置

登錄gitLab——>個人設置——>Setting——>SSh Keys
在這裏插入圖片描述
在這裏插入圖片描述

檢查密鑰是否配置成功

linux服務器可以直接使用ssh,windows 可以使用git bash的窗口來營造一個僞linux的系統來使用ssh

ssh -vT git@gitlabIp -p服務端口
# -v 顯示詳細日誌
# gitlabIp gitLab的訪問地址中ip或者域名信息
# -p 默認使用80端口,可以不寫

Git 指定密鑰路徑

當生成密鑰的使用的不是默認名稱時,或者存在一個設備有多套密鑰時,密鑰的識別會出現問題,需要通過~/.ssh/config文件類指定相應的地址該使用哪個密鑰。爲了驗證是否生效,可以使用ssh -vT git@xxxx -pxxx指令來驗證,這指令會輸出詳細的日誌
在這裏插入圖片描述

#gitlab的ip或者域名 可以使用*通配,優先通過匹配id找到該條記錄
Host github.com
    #gitlab的ip或者域名 不允許*通配
    HostName github.com
    #用戶名,這個內容不做校驗,填什麼都可以
    User username
    #密鑰類型
    PreferredAuthentications publickey
    #密鑰路徑前綴,同ssh-keygen 生成密鑰時設置的路徑
    IdentityFile ~/.ssh/id_rsa_yeah
    #端口 默認端口80可以不做配置
    port 80 
Host git.gupaoedu.com
    HostName git.gupaoedu.com
    User username
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_qq

ssh配置密鑰後未生效

密鑰部分目錄和文件的權限需要嚴格準守規範,否則將導致文件無法正常被讀取使用

chmod 700 ~/
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/*

linux服務器之間密鑰拷貝

拷貝密鑰這一次還是需要輸入密碼的,之後就可以無祕登錄。
ssh-copy-id 指令會將pub密鑰追加到目標服務器~/.ssh/authorized_keys文件中

ssh-copy-id -i ~/.ssh/id_rsa_jenkins.pub -p端口號 目標服務器賬號@目標服務器ip 

在這裏插入圖片描述

完成以後驗證

ssh登錄驗證

ssh -p端口號 目標服務器賬號@目標服務器ip
# -v 顯示詳細日誌
  • 需要輸入密碼是因爲未找到密鑰(沒有密鑰或者密鑰找不到)Git 指定密鑰路徑
  • 成功以後可以通過ifconfig來檢查當前ip
    在這裏插入圖片描述

jenkins配置驗證

http://ip:端口/jenkins/configure
Manage Jenkins ——> Configure System
在這裏插入圖片描述

參考資料

發佈了22 篇原創文章 · 獲贊 1 · 訪問量 4987
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章