SSH Access

With private benches, comes a whole new power to SSH into your bench and run arbitrary commands. You can SSH into a particular version of your Bench using this feature. Here are the steps required to SSH into a particular bench:

Add SSH key to your Frappe Cloud account

Visit the Settings page in your FC dashboard and scroll to the "SSH Key" section:

SSH Key Addition Section

Clicking on "New SSH Key" button should open up a dialog with an input box. Enter your SSH public key in this input box:

SSH Key Addition Dialog

Note: You can only add 1 SSH key per user

Generate SSH certificate & SSH

Navigate to the version of the bench you want gain SSH access to. For this, you can go the bench dashboard and open the Versions tab. If you have correctly added your SSH key, you should see a button as shown below:

SSH Access button

Clicking on the button will open up a dialog:

SSH Access Cert Generation Dialog

Now, click the Generate SSH Certificate button. This will generate an SSH certificate for you, valid for 6 hours, which you can then use to SSH into your bench:

SSH Access Certificate

Note: Everytime you need SSH access to a particular version of a bench, you will need to generate a new SSH certificate. This certificate is valid for 6 hour. After that, you will have to regenerate the certificate from the bench dashboard.

Follow the instructions shown in the dialog (copy-paste the commands into your terminal). After you have successfully added the certificate locally, you should be able to run the given ssh command to gain access to your bench:

SSH Terminal

That's it! You can now run any commands you like bench restart, bench build and more. If you face any issue in getting SSH access, please feel free to raise a support ticket and we will be happy to help!

FAQ

I see the following error when attempting ssh from local:
identity_sign: private key /home/user/.ssh/id_rsa contents do not match public

This is probably because the key you've added on Frappe Cloud does not match the one you're using for ssh on your local. Please review your local setup. Github's ssh docs are pretty good.