Linux配置SSH公鑰認證與Jenkins遠程登錄進行自動發布


特別提示:本人博客部分有參考網絡其他博客,但均是本人親手編寫過並驗證通過。如發現博客有錯誤,請及時提出以免誤導其他人,謝謝!歡迎轉載,但記得標明文章出處: http://www.cnblogs.com/mao2080/

1、問題描述

  假設有兩台服務器,A是Jenkins構建服務器,B是應用服務器,現有問題是A構建好應用之后,將程序包傳到B服務器進行發布,並執行啟動命令?這時候就需要給用到遠程“免密碼”登錄。

2、解決原理

  公鑰認證,是使用RSA加密算法生成一對加密字符串,一個稱為公鑰(public key), 任何人都可以看到其內容,用於加密;另一個稱為密鑰(private key),只有擁有者才能看到,用於解密。在使用jenkins自動構建並遠程登錄服務器進行發布應用的時候,需要使用SSH公鑰認證來解決登錄服務器的問題。

3、操作步驟

  1、在A服務器上使用命令:cd /root/.ssh,進入到 /root/.ssh目錄

  2、在A服務器上對應目錄上生成密鑰對,命令:ssh-keygen -t rsa -P '',回車之后會生成id_rsa(私鑰) 和 id_rsa.pub(公鑰)兩個文件。

[root@user .ssh]# ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
c2:ce:70:bd:4c:49:00:c7:4a:e4:6e:3b:b9:e7:90:c7 root@user.dev
The key's randomart image is:
+--[ RSA 2048]----+
|   .ooo          |
|   .....         |
|   ...  .        |
|   ... o .       |
|    + + S        |
|   . X + .       |
|    * E o        |
|     =.          |
|    .o.          |
+-----------------+

  3、使用cat id_rsa.pub(公鑰) 查看內容,並復制此條命令。

[root@user .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtOQDhB3jLr7MGfUPi7KjVnOIYplcfNQpYJRPfdwn8ImvqZJGiR8ZQd2GRnNQ9VoXa3hosdQbdlTydehlxqAXd3i4/jxbk/8sfbk6w62wgHUWoV3PA88BvqASZ9YLoO6euWXYAi/wi2/vcUJQhsjHdYsaTUJ59JE4zhy
DY8rsgQ3yb1Mcjyen6lnUNk/UxvdXrtmSPW2yDd4QdJ33p4BmAwGK8IBziNK2IHbdddjtQCfviCQi6HBiKdBlrOpNgk1FTkA2FsCSAt0Ec5qy+didrSZ1OZGNrN0vBLYe0Q+kD5LI4dbnmUOhwnPy4GkJ4zK42Woy/stJbnmsTfRPpwbKQ6== root@user.dev

  4、在B服務器上,進入目錄:/root/.ssh,並執行如下命令:

echo 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtOQDhB3jLr7MGfUPi7KjVnOIYplcfNQpYJRPfdwn8ImvqZJGiR8ZQd2GRnNQ9VoXa3hosdQbdlTydehlxqAXd3i4/jxbk/8sfbk6w62wgHUWoV3PA88BvqASZ9YLoO6euWXYAi/wi2/vcUJQhsjHdYsaTUJ59
JE4zhyDY8rsgQ3yb1Mcjyen6lnUNk/UxvdXrtmSPW2yDd4QdJ33p4BmAwGK8IBziNK2IHbdddjtQCfviCQi6HBiKdBlrOpNgk1FTkA2FsCSAt0Ec5qy+didrSZ1OZGNrN0vBLYe0Q+kD5LI4dbnmUOhwnPy4GkJ4zK42Woy/stJbnmsTfRPpwbKQ6== root@user.dev' >> authorized_keys

  5、如果還有其他應用服務器C,那么重復步驟4即可。 

  6、其他知識,在A服務器上可以使用產生的私鑰登錄到其他服務器,命令如下:

ssh -i id_rsa root@192.168.1.1

4、參考網站

https://www.cnblogs.com/jager/p/5986563.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM