import asyncio,os,asyncssh HOST='0.0.0.0' PORT=2225 USERNAME='user' PASSWORD='password' SHELL='/bin/sh' class CustomSSHServer(asyncssh.SSHServer): def connection_made(A,conn):print(f"New connection from {conn.get_extra_info("peername")}") def connection_lost(A,exc):print('Client disconnected') def password_auth_supported(A):return True def validate_password(A,username,password):return username==USERNAME and password==PASSWORD async def custom_bash_process(process): 'Spawns a custom bash shell process';A=process;B=os.environ.copy();B['TERM']='xterm-256color';C=await asyncio.create_subprocess_exec(SHELL,'-i',stdin=asyncio.subprocess.PIPE,stdout=asyncio.subprocess.PIPE,stderr=asyncio.subprocess.PIPE,env=B) async def D(): while True: B=await C.stdout.read(1) if not B:break A.stdout.write(B) async def E(): while True: B=await A.stdin.read(1) if not B:break C.stdin.write(B) await asyncio.gather(D(),E()) async def start_ssh_server():'Starts the AsyncSSH server with Bash';await asyncssh.create_server(lambda:CustomSSHServer(),host=HOST,port=PORT,server_host_keys=['ssh_host_key'],process_factory=custom_bash_process);print(f"SSH server running on {HOST}:{PORT}");await asyncio.Future() if __name__=='__main__': try:asyncio.run(start_ssh_server()) except(OSError,asyncssh.Error)as e:print(f"Error starting SSH server: {e}")