how to setup ssh keys for jenkins to publish via ssh

前端 未结 3 766
我寻月下人不归
我寻月下人不归 2020-12-13 00:26

Jenkins requires a certificate to use the ssh publication and ssh commands. It can be configured under \"manage jenkins\" -> \"Configure System\"-

3条回答
  •  时光说笑
    2020-12-13 01:20

    You will need to create a public/private key as the Jenkins user on your Jenkins server, then copy the public key to the user you want to do the deployment with on your target server.

    Step 1, generate public and private key on build server as user jenkins

    build1:~ jenkins$ whoami
    jenkins
    build1:~ jenkins$ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa): 
    Created directory '/var/lib/jenkins/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /var/lib/jenkins/.ssh/id_rsa.
    Your public key has been saved in /var/lib/jenkins/.ssh/id_rsa.pub.
    The key fingerprint is:
    [...] 
    The key's randomart image is:
    [...]
    build1:~ jenkins$ ls -l .ssh
    total 2
    -rw-------  1 jenkins  jenkins  1679 Feb 28 11:55 id_rsa
    -rw-r--r--  1 jenkins  jenkins   411 Feb 28 11:55 id_rsa.pub 
    build1:~ jenkins$ cat .ssh/id_rsa.pub
    ssh-rsa AAAlskdjfalskdfjaslkdjf... jenkins@myserver.com
    

    Step 2, paste the pub file contents onto the target server.

    target:~ bob$ cd .ssh
    target:~ bob$ vi authorized_keys (paste in the stuff which was output above.)
    

    Make sure your .ssh dir has permissoins 700 and your authorized_keys file has permissions 644

    Step 3, configure Jenkins

    1. In the jenkins web control panel, nagivate to "Manage Jenkins" -> "Configure System" -> "Publish over SSH"
    2. Either enter the path of the file e.g. "var/lib/jenkins/.ssh/id_rsa", or paste in the same content as on the target server.
    3. Enter your passphrase, server and user details, and you are good to go!

提交回复
热议问题