目錄
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 指定密鑰路徑
- Bad owner or permissions on /home/hsyt/.ssh/config ssh配置密鑰後未生效
- 看到Welcome to XXX, 用戶名 就代表配置成功
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