„EOF im Transportthread“ bei der Implementierung der Challenge-Response-Authentifizierung mit Python ParamikoPython

Python-Programme
Guest
 „EOF im Transportthread“ bei der Implementierung der Challenge-Response-Authentifizierung mit Python Paramiko

Post by Guest »

Ich muss mich bei einem Linux -Server anmelden und es hat die folgende Konfiguration in sshd_config :
PasswordAuthentication yes
ChallengeResponseAuthentication yes
UsePAM yes
< /code>
Wenn ich mich über Putty anmelde, forderte mich zunächst auf, das Passwort einzugeben, gefolgt vom RSA -Token aus einer Authentifizierungs -App. Ich muss dasselbe über Python für einige Automatisierungsaufgaben erledigen.
Hier ist mein Code: < /p>
import paramiko, traceback
from getpass import getpass
paramiko.common.logging.basicConfig(level=paramiko.common.DEBUG)

hostname = '192.169.10.10'
port = 22
username = get_user_name()
password = keyring.get_password('unix',username) # This is my first password

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:
transport = paramiko.Transport((hostname, port))
try:
transport.connect(username=username, password=password)
except Exception as e:
print(e)

def challenge_handler(title, instructions, prompt_list):
responses = []
for prompt in prompt_list:
if "password" in prompt[0].lower():
responses.append(password)
elif "rsa" in prompt[0].lower() :
token = getpass(f"Enter {prompt[0].strip()}: ")
responses.append(token)
else:
responses.append(getpass(f"Enter {prompt[0].strip()}: "))
return responses

transport.auth_interactive(username, handler=challenge_handler) #problem starts
print("Authentication successful.")

session = transport.open_session(timeout=10) #Failed with EOF problem
if session.active:
print("Session opened successfully.")

session.exec_command('uname')

output = session.recv(1024).decode()
print("Command output:")
print(output)

error = session.recv_stderr(1024).decode()
if error:
print("Command errors:")
print(error)

session.close()
else:
print("Failed to open session.")

except Exception as e:
print(f"Error: {e}")
traceback.print_exc()
finally:
if 'ssh' in locals():
ssh.close()
print("Connection closed.")
< /code>
Ich konnte nicht herausfinden, was los ist. Schätzen Sie, wenn Sie ein paar Lichter werfen können. Wenn Sie das Gefühl haben, einige Informationen verpasst zu haben, lassen Sie es mich bitte wissen. Info: paramiko.transport: Authentifizierung (Tastaturinteraktiv)
Erfolgreich! DEBUG: Paramiko.Transport: [Chan 0] Max -Paket in: 32768
Bytes Debug: Paramiko.Transport: eof im Transport -Thread < /strong> Ich denke
Hier beginnt das Problem
< /blockquote>
Vielen Dank im Voraus < /p < /p>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post