- Published on
 
Setup target instance to allow Jenkins deploy to
- Authors
 - Name
 - PatharaNor
 
![]()
THIS PART FORCUSING ON TARGET SERVER ONLY.
Create credential in Jenkins
Create SSH key on target machine with RSA type (using -t to identify encrypt type)
ssh-keygen -t rsa
It will generate id_rsa and id_rsa.pub in folder ~/.ssh:
...
-rw------- 1 username username 1675 Aug  1 16:16 id_rsa
-rw-r--r-- 1 username username  420 Aug  1 16:16 id_rsa.pub
...
Copy content of public key or id_rsa.pub to authorized_keys by
# In ~/.ssh directory
cat id_rsa.pub >> authorized_keys
For id_rsa or private key, we will copy content in id_rsa to text box when create credential in Jenkins.
# example id_rsa content
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAtuwxg9eWuFS+ZXa6JXusfp7pncmycT5yEB2sOVfXseC2v6c9
5hLldmOu7b8B5mIZZAvz8fxl+8sp8T48iuuk3SQaMq3RIIxoaF2qpBe78wvXTFtb
538P...................................................gsCW0hV7R
lF7dAoGAb+KH6UUUiQZp3YM3nQabresdAbw8IM3nDebTPBOJiWihYx6TsfHkzPoH
HQpWGiFVggr/mZH7v04sdyw/xzUM29VyeFz93aGYtEZFpU2MwBaz8233wZMSbfa5
KmgYibbEWCh1xbQNaJ9mMg+F1dQecZxiBXYW2OYufhHBDaSOa2c=
-----END RSA PRIVATE KEY-----
File Permission
Your authorized_keys and ~/.ssh should set permission look like below:
~/.ssh/authorized_keys file :
chmod 600 authorized_keys
.ssh folder
chmod 700 ~/.ssh
After that switch to Jenkins, go to :
http://YOUR_JENKINS_IP:YOUR_JENKINS_PORT/credentials/store/system/
click on Global credentials (unrestricted) then click on Add Credentials to create credential of each target machine.
Example :
Kind        : SSH Username with private key
Scope       : Global (Jenkins, nodes, items, all child items, etc)
Username    : YOUR_USERNAME_OF_TARGET_MACHINE
Private Key : select on "Enter directly"
Key         :
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAtuwxg9eWuFS+ZXa6JXusfp7pncmycT5yEB2sOVfXseC2v6c9
5hLldmOu7b8B5mIZZAvz8fxl+8sp8T48iuuk3SQaMq3RIIxoaF2qpBe78wvXTFtb
538P...................................................gsCW0hV7R
lF7dAoGAb+KH6UUUiQZp3YM3nQabresdAbw8IM3nDebTPBOJiWihYx6TsfHkzPoH
HQpWGiFVggr/mZH7v04sdyw/xzUM29VyeFz93aGYtEZFpU2MwBaz8233wZMSbfa5
KmgYibbEWCh1xbQNaJ9mMg+F1dQecZxiBXYW2OYufhHBDaSOa2c=
-----END RSA PRIVATE KEY-----
Passphrase  : LET_EMPTY
ID          : LET_EMPTY
Description : YOUR_DESCRIPTION
Allow Jenkins create folder on target directory, example /app/ :
sudo chown $USER:$USER app opt
Now your Jenkins should be accessable this instance.