SSH process persistent but remote access closed

I have a problem programming on Solaris 10 and hope to ask for help here. I created a script to call the "ssh" binary. This script does some checks before running the "ssh" binary as a subprocess. The script takes the power of "root" with the SUID method.

After using this script for some time, some of the processes remain dangling as shown below.

root 23322 1 0 12:24:38? 0:00 scriptssh device321

I connected to device321 and couldn't find any other users existing on the device.

After some reading, I realize that the script has disconnected from the controlling terminal (look at "at" tty and 1 for "PPID") Is it a subprocess error in Python if I use the "communicate" method?

Does anyone have a way to resolve this or determine why this is happening?

The script is written in Python.

EDIT:

It might be easier to isolate the problem like this:

User A on remote server -> SSH session created

User. Logout of remote server -> SSH session remains

SSH session throws high cpu on current server.

Below are some code snippets.

def main():
   ....
   ....
   try:
      if logic_user(username) == "privilege":
         if ip_check(src_ip,p_list):
            ssh_out(ssh_exe)
         else:
            print("You do not have access to SSH")
   except KeyboardInterrupt:
      print("Ctrl+c keyed in")
   finally:
      print("\nexiting ssh")

def ssh_out(ssh_exe):
   cmd = subprocess.Popen(ssh_exe, shell=True)
   cmd.communicate()

      

+3


source to share





All Articles