Ubuntu / WebSSH /AppHandler3.py
BinaryONe
Chnages
e80ff99
import os
import json
import tornado.web
import subprocess
# New handler for your custom page
class AppHandler(tornado.web.RequestHandler):
HandlerPath = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),'WebSSH', 'templates')
template_folder = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'WebSSH', 'templates')
def get(self):
print(self.request)
self.render(os.path.join(self.template_folder, 'index.html'))
def function_two(self):
# Your logic for function one
self.write("Function One Called")
def post(self):
#data = json.loads(self.body)
username = self.get_argument("username")
password = self.get_argument("password")
print(f"Username: {username}, Password: {password}")
if not username or not password:
self.set_status(400)
self.write("Username and password are required.")
return
# Check if the user already exists
user_exists = subprocess.run(["id", "-u", username], capture_output=True)
if user_exists.returncode == 0:
# User exists, read the existing SSH key
ssh_dir = f"/home/{username}/.ssh"
private_key_path = f"{ssh_dir}/id_rsa"
if os.path.exists(private_key_path):
with open(private_key_path, "r") as file:
private_key = file.read()
else:
#self.set_status(404)
#self.write("SSH key not found for existing user.")
return {response: 404, message: "SSH key not found for existing user."}
else:
#self.set_status(404)
#self.write("User not found.")
return {response: 404, message:"User not found."}
# Return the private key to the user
self.set_header('Content-Type', 'application/octet-stream')
self.set_header('Content-Disposition', f'attachment; filename=id_rsa')
self.write(private_key)
"""
def run_commands(self):
data = json.loads(self.body)
command = data.get("command")
print(f"Command: {command}")
if command:
try:
result = subprocess.run(command, shell=True, capture_output=True, text=True)
print(f"Result: {result}")
return(result.stdout)
except Exception as e:
return(str(e))
else:
return("No command provided")
"""