!python3 -m pip install notebook !wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz !tar -xvf ngrok-v3-stable-linux-amd64.tgz ---------------------------------------------------------------------------- ngrok Api Token https://dashboard.ngrok.com/ ---------------------------------------------------------------------------- !./ngrok authtoken 2cfB9NhaTOH7vSNfWnteSUd48IM_3PV4ieVyEQiehafJe6D1R !./ngrok http 8888 & python3 -m notebook --allow-root ------------------------------------------------------------------------------------ https://remotedesktop.google.com/ Setup via SSH Debian LinuxDebian Linux copy and add to CRP="" ----------------------------------------------------------------------------------- import os username = "user" #@param {type:"string"} password = "root" #@param {type:"string"} print("Creating User and Setting it up") os.system(f"useradd -m {username}") os.system(f"adduser {username} sudo") os.system(f"echo '{username}:{password}' | sudo chpasswd") os.system("sed -i 's/\/bin\/sh/\/bin\/bash/g' /etc/passwd") print(f"User created and configured having username `{username}` and password `{password}`") import subprocess #@markdown Visit http://remotedesktop.google.com/headless and copy the command after Authentication CRP = '' #@param {type:"string"} #@markdown Enter a Pin (more or equal to 6 digits) Pin = 123456 #@param {type: "integer"} #@markdown Autostart Notebook in RDP Autostart = True #@param {type: "boolean"} class CRD: def __init__(self, user): os.system("apt update") self.installCRD() self.installDesktopEnvironment() self.installGoogleChorme() self.finish(user) print("\nRDP created succesfully move to https://remotedesktop.google.com/access") @staticmethod def installCRD(): print("Installing Chrome Remote Desktop") subprocess.run(['wget', 'https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb'], stdout=subprocess.PIPE) subprocess.run(['dpkg', '--install', 'chrome-remote-desktop_current_amd64.deb'], stdout=subprocess.PIPE) subprocess.run(['apt', 'install', '--assume-yes', '--fix-broken'], stdout=subprocess.PIPE) @staticmethod def installDesktopEnvironment(): print("Installing Desktop Environment") os.system("export DEBIAN_FRONTEND=noninteractive") os.system("apt install --assume-yes xfce4 desktop-base xfce4-terminal") os.system("bash -c 'echo \"exec /etc/X11/Xsession /usr/bin/xfce4-session\" > /etc/chrome-remote-desktop-session'") os.system("apt remove --assume-yes gnome-terminal") os.system("apt install --assume-yes xscreensaver") os.system("systemctl disable lightdm.service") @staticmethod def installGoogleChorme(): print("Installing Google Chrome") subprocess.run(["wget", "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb"], stdout=subprocess.PIPE) subprocess.run(["dpkg", "--install", "google-chrome-stable_current_amd64.deb"], stdout=subprocess.PIPE) subprocess.run(['apt', 'install', '--assume-yes', '--fix-broken'], stdout=subprocess.PIPE) @staticmethod def finish(user): print("Finalizing") if Autostart: os.makedirs(f"/home/{user}/.config/autostart", exist_ok=True) link = "www.youtube.com/@epic_miner" colab_autostart = """[Desktop Entry] Type=Application Name=Colab Exec=sh -c "sensible-browser {}" Icon= Comment=Open a predefined notebook at session signin. X-GNOME-Autostart-enabled=true""".format(link) with open(f"/home/{user}/.config/autostart/colab.desktop", "w") as f: f.write(colab_autostart) os.system(f"chmod +x /home/{user}/.config/autostart/colab.desktop") os.system(f"chown {user}:{user} /home/{user}/.config") os.system(f"adduser {user} chrome-remote-desktop") command = f"{CRP} --pin={Pin}" os.system(f"su - {user} -c '{command}'") os.system("service chrome-remote-desktop start") print("Finished Succesfully") while True:pass try: if CRP == "": print("Please enter authcode from the given link") elif len(str(Pin)) < 6: print("Enter a pin more or equal to 6 digits") else: CRD(username) except NameError as e: print("'username' variable not found, Create a user first")