All Projects → WassimBenzarti → Colab Ssh

WassimBenzarti / Colab Ssh

Licence: mit
Connect to Google Colab using SSH

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Colab Ssh

Coco
Jumpserver ssh/ws server
Stars: ✭ 139 (-44.18%)
Mutual labels:  ssh, ssh-server
Ssh
Easy SSH servers in Golang
Stars: ✭ 2,254 (+805.22%)
Mutual labels:  ssh, ssh-server
Dos ssh
Use BIOS ram hacks to make a SSH server out of any INT 10 13h app (MS-DOS is one of those)
Stars: ✭ 139 (-44.18%)
Mutual labels:  ssh, ssh-server
Mockssh
Mock an SSH server and define all commands it supports (Python, Twisted)
Stars: ✭ 107 (-57.03%)
Mutual labels:  ssh, ssh-server
Code Debug
Native debugging for VSCode
Stars: ✭ 232 (-6.83%)
Mutual labels:  vscode, ssh
Addon Ssh
SSH & Web Terminal - Home Assistant Community Add-ons
Stars: ✭ 114 (-54.22%)
Mutual labels:  ssh, ssh-server
Ssh2docker
🐳 standalone SSH server that connects you to your Docker containers
Stars: ✭ 159 (-36.14%)
Mutual labels:  ssh, ssh-server
Ssb
Secure Shell Bruteforcer — A faster & simpler way to bruteforce SSH server
Stars: ✭ 832 (+234.14%)
Mutual labels:  ssh, ssh-server
Vscode Remote Release
Visual Studio Code Remote Development: Open any folder in WSL, in a Docker container, or on a remote machine using SSH and take advantage of VS Code's full feature set.
Stars: ✭ 2,256 (+806.02%)
Mutual labels:  vscode, ssh
Bastillion
Bastillion is a web-based SSH console that centrally manages administrative access to systems. Web-based administration is combined with management and distribution of user's public SSH keys.
Stars: ✭ 2,730 (+996.39%)
Mutual labels:  ssh, ssh-server
Ssh Proxy
SSH proxy that allows support agents go to customers servers with using intermediate corporate SSH key
Stars: ✭ 53 (-78.71%)
Mutual labels:  ssh, ssh-server
tarssh
A simple SSH tarpit inspired by endlessh
Stars: ✭ 98 (-60.64%)
Mutual labels:  ssh, ssh-server
Sshportal
🎩 simple, fun and transparent SSH (and telnet) bastion server
Stars: ✭ 978 (+292.77%)
Mutual labels:  ssh, ssh-server
Sshserver
This is a tutorial on how to build a basic SSH Server in C#, but you are welcome to try following in any language.
Stars: ✭ 114 (-54.22%)
Mutual labels:  ssh, ssh-server
Wssh
WSSH Is a tool for brute forcing servers that has port 22 open via ssh, wssh is probably the fastest ssh brute forcer available
Stars: ✭ 21 (-91.57%)
Mutual labels:  ssh, ssh-server
Wolfssh
wolfSSH is a small, fast, portable SSH implementation, including support for SCP and SFTP.
Stars: ✭ 142 (-42.97%)
Mutual labels:  ssh, ssh-server
Bastillion Ec2
A web-based SSH console to execute commands and manage multiple EC2 instances simultaneously running on Amazon Web Services (AWS).
Stars: ✭ 410 (+64.66%)
Mutual labels:  ssh, ssh-server
Ansible Ssh Hardening
This Ansible role provides numerous security-related ssh configurations, providing all-round base protection.
Stars: ✭ 746 (+199.6%)
Mutual labels:  ssh, ssh-server
Secure Wireguard Implementation
A guide on implementing a secure Wireguard server on OVH (or any other Debian VPS) with DNSCrypt, Port Knocking & an SSH-Honeypot
Stars: ✭ 200 (-19.68%)
Mutual labels:  ssh, ssh-server
lobbyboy
A lobby boy will create a VPS server when you need one, and destroy it after using it.
Stars: ✭ 212 (-14.86%)
Mutual labels:  ssh, ssh-server

Cover photo of Colab-ssh

🎉 Happy to announce that we now support:

  • Argo Tunnel (also known as cloudflared)
  • VSCode direct link 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 enables you to connect to a Google Colab virtual machine using an SSH tunnel.

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.

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

Getting started

  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 repository
init_git_cloudflared(githubRepositoryUrl)

Make sure you replace <PUT_YOUR_PASSWORD_HERE> with a password of your choice and githubRepositoryUrl with the link to your github repository (if you use init_git_cloudflared function).

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

⚠️ 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.

❔ Looking for a way to connect using Ngrok ? Check the colab-ssh ngrok documentation

Cloning a repository (Optional)

If you are a Github fan, you probably want to clone a repository (private or public) 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.
  • 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.

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()

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).

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

Other useful documentation

API Reference

Check the API reference on this page.

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!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].