Accessing Autobuilders: Difference between revisions

From Yocto Project
Jump to navigationJump to search
No edit summary
(Update to modern key lengths/types)
 
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Connecting to Autobuilders==
==Connecting to Autobuilders==
We use an ssh jumphost called access.yoctoproject.org to connect to the autobuilders. Jumphosts enhance security by removing the threat of hijacked ssh-agents and limiting the services running on Internet exposed hosts.
We use an ssh jumphost called access.yoctoproject.org/access.yocto.io to connect to the autobuilders. Jumphosts enhance security by removing the threat of hijacked ssh-agents and limiting the services running on Internet exposed hosts.


===Generate keys===
===Generate keys===
In order to access any of the autobuilders your ssh public keys must first be installed. The preferred way to generate a key is type RSA with 2048 bits or greater. Please put your e-mail, the date of generation, and the host the key lives on in the comment. Please set a passphrase even if it's a simple one! Ideally your private key will never leave the host it is generated on - so if you have multiple machines please generate multiple keys. E-mail your '''public''' key named id_rsa.pub to hostmaster@yoctoproject.org. Keep id_rsa(the private key) super safe. Please never share it with anyone or copy it onto the Internet. Don't e-mail it to yourself either.
In order to access any of the autobuilders your ssh public keys must first be installed. The preferred key type is ECC. RSA with 4096 bits is also acceptable. Please put your e-mail, the date of generation, and the host the key lives on in the comment. Please set a passphrase even if it's a simple one! Ideally your private key will never leave the host it is generated on - so if you have multiple machines please generate multiple keys. E-mail your '''public''' key named ~/.ssh/id_ed25519.pub or id_rsa.pub to helpdesk@yoctoproject.org. Keep id_ed25519 or id_rsa(the private key) super safe. Please never share it with anyone or copy it onto the Internet. Don't e-mail it to yourself either.


   ssh-keygen -b 2048 -t rsa -C "your.email@company.com_2012-05-30_localhostname"
   ssh-keygen -t ed25519 -C "your_email@example.com_2012-05-30_localhostname"


Substitute your own e-mail and your computer's hostname in the command above. Setting these helps with troubleshooting in the future.
Substitute your own e-mail and your computer's hostname in the command above. Setting these helps with troubleshooting in the future.


===Configure ssh===
===Configure ssh===
Edit ~/.ssh/config and add:
Edit ~/.ssh/config on your local machine and add:


  Host access.yoctoproject.org
  Host access.yoctoproject.org
     # Make sure your username matches your account on the autobuilder
     # Make sure your username matches your account on the autobuilder
     User [username]
     #User [username]
     # Give the full path to the proper public key
     # Give the full path to the proper public key if needed
     IdentityFile /home/[username]/.ssh/id_rsa
     #IdentityFile /home/[username]/.ssh/id_rsa
     # If your network requires you to use a SOCKS proxy enable it here
     # If your network requires you to use a SOCKS proxy enable it here
     # ProxyCommand nc -X5 -x [proxyserver.address.company.com:1080] %h %p
     # ProxyCommand nc -X5 -x [proxyserver.address.company.com:1080] %h %p
    # If your system uses 'ncat', rather than 'netcat', use these options to enable a SOCKS proxy
    # ProxyCommand nc --proxy-type socks5 --proxy [proxyserver.address.company.com:1080] %h %p
      
      
  # We use an internal DNS server with the fake TLD .yp for ease of use
  # *.yocto.io except for access is internal. Proxy through the bastion.  
  Host *.yp
  Host !access.yocto.io *.yocto.io
    # This proxy command actually does the of running ssh through ssh
     ProxyJump access.yoctoproject.org
     ProxyCommand ssh access.yoctoproject.org exec nc %h %p 2> /dev/null
     # Correct username and key repeated from above.
     # Correct username and key repeated from above.
     User [username]
     #User [username]
     IdentityFile /home/username/.ssh/id_rsa
     #IdentityFile /home/[username]/.ssh/id_rsa
     # We don't need strict checking on the private network.
     # We don't need strict checking on the private network.
     StrictHostKeyChecking no
     StrictHostKeyChecking no
    VisualHostKey no
     # Don't bother saving hostkeys we don't check
     # Don't bother saving hostkeys we don't check
     UserKnownHostsFile /dev/null
     UserKnownHostsFile /dev/null


===Verify Fingerprints===
===Verify Fingerprints===
Now actually ssh to access.yoctoproject.org and verify that the fingerprint you receive matches the fingerprint below.
Now actually ssh to access.yoctoproject.org and verify that the fingerprint you receive matches a fingerprint below.


  access.yoctoproject.org ECDSA 45:57:d2:e5:c9:93:40:a3:32:f4:a3:29:0b:1e:99:57
  access.yocto.io
  or                      RSA 15:90:e2:85:98:db:f6:75:55:3d:fb:fa:22:a7:06:44
256 SHA256:d3eQ8azExpEKfcJExpUSpgw9D7gZgVDZ6gl4Bt5r6cQ (ED25519)
256 SHA256:jKW/rkm3+bNdtJ5CepVyHsxnbY8T78hk7lLwB0or0uA (ECDSA)
  2048 SHA256:Qpvu4aUBox4eaYTeneRx5zMjwKTsZrJnn5VS9N5w+Fo (RSA)


===Connect!===
===Connect!===
Now that you've added access.yoctoproject.org to your known hosts you don't need to worry about fingerprints anymore. Time to connect to a builder. Run:
Now that you've added access.yoctoproject.org to your known hosts you don't need to worry about fingerprints anymore. Time to connect to a builder. Run:
   ssh ab01.yp
   ssh centos8-ty-1.yocto.io


If all worked correctly you are now logged into autobuilder01.  
If all worked correctly you are now logged in. Build workers are [https://autobuilder.yoctoproject.org/typhoon/#/workers listed on the controller]. Append .yocto.io to the name to ssh.


===Need to work on the build scripts?===
===Need to work on the build scripts?===
If you are on the SWAT team you can access pokybuild using this sudo command:
If you are on the SWAT team you can access pokybuild using this sudo command:
   sudo -iu pokybuild
   sudo -iu pokybuild
keywords: ssh access auto builder accessing autobuilders

Latest revision as of 16:25, 4 April 2023

Connecting to Autobuilders

We use an ssh jumphost called access.yoctoproject.org/access.yocto.io to connect to the autobuilders. Jumphosts enhance security by removing the threat of hijacked ssh-agents and limiting the services running on Internet exposed hosts.

Generate keys

In order to access any of the autobuilders your ssh public keys must first be installed. The preferred key type is ECC. RSA with 4096 bits is also acceptable. Please put your e-mail, the date of generation, and the host the key lives on in the comment. Please set a passphrase even if it's a simple one! Ideally your private key will never leave the host it is generated on - so if you have multiple machines please generate multiple keys. E-mail your public key named ~/.ssh/id_ed25519.pub or id_rsa.pub to helpdesk@yoctoproject.org. Keep id_ed25519 or id_rsa(the private key) super safe. Please never share it with anyone or copy it onto the Internet. Don't e-mail it to yourself either.

 ssh-keygen -t ed25519 -C "your_email@example.com_2012-05-30_localhostname"

Substitute your own e-mail and your computer's hostname in the command above. Setting these helps with troubleshooting in the future.

Configure ssh

Edit ~/.ssh/config on your local machine and add:

Host access.yoctoproject.org
   # Make sure your username matches your account on the autobuilder
   #User [username]
   # Give the full path to the proper public key if needed
   #IdentityFile /home/[username]/.ssh/id_rsa
   # If your network requires you to use a SOCKS proxy enable it here
   # ProxyCommand nc -X5 -x [proxyserver.address.company.com:1080] %h %p
   # If your system uses 'ncat', rather than 'netcat', use these options to enable a SOCKS proxy
   # ProxyCommand nc --proxy-type socks5 --proxy [proxyserver.address.company.com:1080] %h %p
   
# *.yocto.io except for access is internal. Proxy through the bastion. 
Host !access.yocto.io *.yocto.io
   ProxyJump access.yoctoproject.org
   # Correct username and key repeated from above.
   #User [username]
   #IdentityFile /home/[username]/.ssh/id_rsa
   # We don't need strict checking on the private network.
   StrictHostKeyChecking no
   VisualHostKey no
   # Don't bother saving hostkeys we don't check
   UserKnownHostsFile /dev/null

Verify Fingerprints

Now actually ssh to access.yoctoproject.org and verify that the fingerprint you receive matches a fingerprint below.

access.yocto.io
256 SHA256:d3eQ8azExpEKfcJExpUSpgw9D7gZgVDZ6gl4Bt5r6cQ (ED25519)
256 SHA256:jKW/rkm3+bNdtJ5CepVyHsxnbY8T78hk7lLwB0or0uA (ECDSA)
2048 SHA256:Qpvu4aUBox4eaYTeneRx5zMjwKTsZrJnn5VS9N5w+Fo (RSA)

Connect!

Now that you've added access.yoctoproject.org to your known hosts you don't need to worry about fingerprints anymore. Time to connect to a builder. Run:

 ssh centos8-ty-1.yocto.io

If all worked correctly you are now logged in. Build workers are listed on the controller. Append .yocto.io to the name to ssh.

Need to work on the build scripts?

If you are on the SWAT team you can access pokybuild using this sudo command:

 sudo -iu pokybuild


keywords: ssh access auto builder accessing autobuilders