Skip to main content

Google colab SSH connector

Project description

Cover photo of Colab-ssh

A new version of colab-ssh is coming soon, stay tuned.

🎉 Happy to announce that we now have:

  • Youtube demo video
  • Support for Gitlab repositories
  • VSCode integration with which you can open your VSCode right from the notebook.

Colab-ssh

Connect to Google colab via ssh easily

Downloads Downloads Downloads

What is Colab-ssh ?

Colab-ssh is a light-weight library that allows you to connect to Google Colab Notebook using an SSH Tunnel and optionally via VSCode.

Quick start

You can click on the Google Colab button to clone an already setup notebook:

Open In Colab

:warning: Colab-ssh supports Google colaboratory notebooks only, using it on other notebooks may lead to unexpected behavior.

Getting started

Now you can watch a demo video on how to setup Colab-ssh with cloudflared on Youtube. Click the video below to open it.

Youtube demo of Colab-ssh

  1. Open Google Colab and run this code in one of the code cells
# Install colab_ssh on google colab
!pip install colab_ssh --upgrade

from colab_ssh import launch_ssh_cloudflared, init_git_cloudflared
launch_ssh_cloudflared(password="<PUT_YOUR_PASSWORD_HERE>")

# Optional: if you want to clone a Github or Gitlab repository
repository_url="<PUT_YOUR_REPOSITORY_URL_HERE>"
init_git_cloudflared(repository_url)

Make sure you replace <PUT_YOUR_PASSWORD_HERE> with a password of your choice and <PUT_YOUR_REPOSITORY_URL_HERE> with the link to your Github/Gitlab repository (if you use the git integration).

The output of this snippet will look similar to the following screenshot: launch_ssh_cloudflared output

:warning: If it's the first time you launch colab-ssh on your machine, it's important to follow the instructions in the "Client machine configuration" section. To show the steps that you need to do, just click "Client machine configuration". Don't worry, you don't have to repeat these steps again for each notebook.

:grey_question: Things doesn't work ? or looking for a way to connect using Ngrok ? Check the colab-ssh ngrok documentation

Cloning a repository (Optional)

If you are a Github/Gitlab fan, you probably want to clone a repository (private or public) repeatedly to the Google Colab Notebook. This is why init_git is created.

What `init_git` does
  • Clones the repository
  • Uses your personal token (if you provided it) to setup the repository remote URL (this is useful so you don't have to worry about authentication during git clone or git push). If you clone a private repository without a personal token, you will be asked to put your password (This is only valid for Gitlab, as opposed to Github that recently disabled password authentication).
  • Checkout the branch of your preference
  • Sets up the user.email and user.name for you, in case you need to commit.
  • Also, it inserts the cloned folder to the sys.path. This is helpful when your cloned repository is a python project and you want to import some python modules directly (without specifying the name of the root folder) to your Google Colab Notebook. Example: If you cloned a repository called example-repo. A folder should be created containing your cloned repository. If example-repo has a python module called my_module, instead of writing in your notebook import example-repo.my_module, you can simply do import my_module.

Example:

init_git_cloudflared("https://github.com/<OWNER>/<REPO_NAME>.git",
         personal_token="<YOUR_GITHUB_PERSONAL_TOKEN>", 
         branch="<YOUR_BRANCH>",
         email="<YOUR_EMAIL>",
         username="<YOUR_USERNAME>")

The output of this command will look like this: init_git_cloudflared output

This will display a button inside the cell output (or a url in case of a terminal). This is a direct link to open VSCode installed on your machine.

Link doesn't appear or doesn't work?

  • Make sure you have VSCode installed locally for the link to work
  • Make sure that you run launch_ssh_cloudflared before init_git_cloudflared. The reason for that is because init_git_cloudflared shows the link based on the tunnel information provided by the function launch_ssh_cloudflared.

:warning: Please note that your Gitlab personal access token requires the following scopes: read_api, read_repository, write_repository.

Avoiding passwords (Optional)

Instead of setting a password, you can access the SSH tunnel using your own pair of keys.

IMPORTANT: This feature is only available when you clone your git repository by using the function init_git_cloudflared()

You need to follow these steps:

  1. Create a pair of SSH key
  2. Copy your public key (usually it's in the file ~/.ssh/id_rsa.pub) and make sure you keep your private key in a safe place
  3. In the root of your github repository, create a folder called .colab_ssh and a file within it called authorized_keys
  4. Paste your public key inside the file .collab_ssh/authorized_keys
  5. Push your changes to the repository and launch the clone again from your Google Colab Notebook
How it works behind the scenes ?

We get your public key from the repository passed into the init_git() function and then we add it to the authorized_keys file (found in ~/.ssh folder).

Other useful documentation

API Reference

Check the API reference on this page.

FAQ

Can I open the Colab notebook automatically without user interaction ?

No, you still need to open the Google Colab Notebook interface manually in order to setup this tool. Google Colab doesn't have an API yet to automatically run a notebook for you.

Some environment variables are available on Google Colab but not available when executing from the terminal ?

Check out the documentation for how you can Expose a Google Colab environment variable.

Sponsor this project :)

If you want to buy me a cup of coffee, feel free to reach me or use the following IBAN (International Bank Account Number):

TN5904018104003696876646

Contribution

Start by opening an issue so can start working together to enhance the experience of Google Colab users. We would love to hear your ideas!

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

colab_ssh-0.3.27.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

colab_ssh-0.3.27-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file colab_ssh-0.3.27.tar.gz.

File metadata

  • Download URL: colab_ssh-0.3.27.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for colab_ssh-0.3.27.tar.gz
Algorithm Hash digest
SHA256 21dcdbdc651cd820e2eebb54cf1193d1b505c17546c99ad7159fa693daa2f9da
MD5 f04faabe0fe786fb69ec03e0705bf340
BLAKE2b-256 ae4c032806749be8c7cb1beb0615051e96280df9ff5dc7d1ba87ed29cea3b492

See more details on using hashes here.

File details

Details for the file colab_ssh-0.3.27-py3-none-any.whl.

File metadata

  • Download URL: colab_ssh-0.3.27-py3-none-any.whl
  • Upload date:
  • Size: 26.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for colab_ssh-0.3.27-py3-none-any.whl
Algorithm Hash digest
SHA256 04032c47461527c256f66f412eb04b1d935596e29a66e71ce887680766d6def7
MD5 da70cefd80cf3a84e530090109033d56
BLAKE2b-256 ef10eca847b3ab100e9e8e312ecfc7296ba3f535e35bc51adf62a8d33e4658f2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page