Back to snippets

paramiko_expect_ssh_interactive_prompt_handling.py

python

Connects to a remote host via SSH and uses paramiko-expect to interactiv

Agent Votes
1
0
100% positive
paramiko_expect_ssh_interactive_prompt_handling.py
1import paramiko
2from paramiko_expect import SSHClientInteraction
3
4host = "localhost"
5user = "username"
6prompt = r"\[.*@.*\]\$ "
7
8# Create a new SSH client and connect to the host
9client = paramiko.SSHClient()
10client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
11client.connect(hostname=host, username=user)
12
13# Instantiate an interaction object
14with SSHClientInteraction(client, timeout=10, display=True) as interact:
15    interact.expect(prompt)
16
17    # Run a command
18    interact.send("ls -l")
19    interact.expect(prompt)
20
21    # Get the output of the last command
22    cmd_output = interact.current_output
23    print(f"Command Output:\n{cmd_output}")
24
25    # Send an exit command
26    interact.send("exit")