0% found this document useful (0 votes)
48 views1 page

Cara Pertama

This document generates a random root password, downloads and configures ngrok and openssh-server to create an SSH tunnel. It prompts the user for their ngrok authentication token, starts the SSH daemon and ngrok tunnel in the background, and prints the public SSH connection details and root password.

Uploaded by

devils24
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views1 page

Cara Pertama

This document generates a random root password, downloads and configures ngrok and openssh-server to create an SSH tunnel. It prompts the user for their ngrok authentication token, starts the SSH daemon and ngrok tunnel in the background, and prints the public SSH connection details and root password.

Uploaded by

devils24
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 1

import random, string, urllib.

request, json, getpass

#Generate root password


password = ''.join(random.choice(string.ascii_letters + string.digits) for i in
range(20))

#Download ngrok
! wget -q -c -nc https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
! unzip -qq -n ngrok-stable-linux-amd64.zip

#Setup sshd
! apt-get install -qq -o=Dpkg::Use-Pty=0 openssh-server pwgen > /dev/null

#Set root password


! echo root:$password | chpasswd
! mkdir -p /var/run/sshd
! echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
! echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
! echo "LD_LIBRARY_PATH=/usr/lib64-nvidia" >> /root/.bashrc
! echo "export LD_LIBRARY_PATH" >> /root/.bashrc

#Run sshd
get_ipython().system_raw('/usr/sbin/sshd -D &')

#Ask token
print("Copy authtoken from https://dashboard.ngrok.com/auth")
authtoken = getpass.getpass()

#Create tunnel
get_ipython().system_raw('./ngrok authtoken $authtoken && ./ngrok tcp 22 &')

#Get public address and print connect command


with urllib.request.urlopen('http://localhost:4040/api/tunnels') as response:
data = json.loads(response.read().decode())
(host, port) = data['tunnels'][0]['public_url'][6:].split(':')
print(f'SSH command: ssh -p{port} root@{host}')

#Print root password


print(f'Root password: {password}')

You might also like