sudo adduser $ username - это интерактивная команда, которую необходимо ввести для терминала. Вы можете использовать этот код:
Этот код будет взаимодействовать с терминалом целевого сервера в фоновом режиме и предоставит все необходимые входные данные, которые предоставляются пользователем для
username = input("enter the name : ")
. Он предоставляется в качестве входа длябыть добавленным в качестве пользователя
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
output = ssh.connect('<$server-ip>', port='<$port>', username='$username',
key_filename="key/file/path")
username = input("enter the name : ")
command = f"sudo adduser {username}"
channel = ssh.invoke_shell()
channel_data = str()
password = "$password_wants_to_assign"
complete = false
while True:
if channel.recv_ready():
channel_data = channel.recv(9999).decode("utf-8")
else:
continue
if channel_data.endswith("hostname_of_targeted_server"):
if not complete:
channel.send(command)
channel.send("\n")
complete = True
else:
break
elif channel_data.endswith("UNIX password: "):
channel.send(password)
channel.send('\n')
elif channel_data.endswith("[]: "):
channel.send('\n')
elif channel_data.endswith("[Y/n] "):
channel.send("Y\n")
ssh.close()`