Package: colab-ssh
A new version of colab-ssh is coming soon, stay tuned.🎉 Happy to announce that we now have:Youtube demo videoSupport for Gitlab repositoriesVSCode integration with which you can open your VSCode right from the notebook.Colab-sshConnect to Google colab via ssh easilyWhat 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 startYou can click on the Google Colab button to clone an already setup notebook::warning: Colab-ssh supports Google colaboratory notebooks only, using it on other notebooks may lead to unexpected behavior.Getting startedNow you can watch a demo video on how to setup Colab-ssh with cloudflared on Youtube. Click the video below to open it.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::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 thecolab-ssh ngrok documentationCloning 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 whyinit_gitis created.What `init_git` doesClones the repositoryUses 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 duringgit cloneorgit 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 preferenceSets up theuser.emailanduser.namefor you, in case you need to commit.Also, it inserts the cloned folder to thesys.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 calledexample-repo. A folder should be created containing your cloned repository. Ifexample-repohas a python module calledmy_module, instead of writing in your notebookimport example-repo.my_module, you can simply doimport 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: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 workMake sure that you runlaunch_ssh_cloudflaredbeforeinit_git_cloudflared. The reason for that is becauseinit_git_cloudflaredshows the link based on the tunnel information provided by the functionlaunch_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 functioninit_git_cloudflared()You need to follow these steps:Create a pair of SSH keyCopy yourpublic key(usually it's in the file~/.ssh/id_rsa.pub) and make sure you keep yourprivate keyin a safe placeIn the root of your github repository, create a folder called.colab_sshand a file within it calledauthorized_keysPaste yourpublic keyinside the file.collab_ssh/authorized_keysPush your changes to the repository and launch the clone again from your Google Colab NotebookHow it works behind the scenes ?We get yourpublic keyfrom the repository passed into theinit_git()function and then we add it to theauthorized_keysfile (found in~/.sshfolder).Other useful documentationExposing a Google Colab environment variableAPI ReferenceCheck the API reference on thispage.FAQCan 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 canExpose 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):TN5904018104003696876646ContributionStart byopening an issueso can start working together to enhance the experience of Google Colab users. We would love to hear your ideas!