我知道我的问题可能已经张贴在堆栈溢出的地方,但我找不到答案。
我正在尝试自动SSH登录到服务器。当我输入用户名时,服务器会发送一个提示“Do you accept and acknowledge the statement above?(yes/no):“,我必须键入“yes”,然后键入密码。x1c 0d1x
我不知道如何在Python中发送yes和password。下面是我的代码。:
import paramiko
ip_address = "1.1.1.1"
username = "abc"
password = "1234"
# Define the list of show commands to execute
show_commands = ["show interfaces", "show routing table", "show system info"]
# Create an SSH client object
ssh = paramiko.SSHClient()
# Automatically add the Palo Alto firewall's SSH key to the local key store
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# Connect to the Palo Alto firewall using SSH
ssh.connect(hostname=ip_address, username=username, password=password)
# Execute each show command and print its output
for command in show_commands:
stdin, stdout, stderr = ssh.exec_command(command)
output = stdout.read().decode()
print(f"Output of '{command})':")
print(output)
print("-" * 50)
# Close the SSH connection
ssh.close()
1条答案
按热度按时间5t7ly7z51#
为了自动化发送“yes”到提示符然后发送密码的过程,您可以尝试使用paramiko库沿着pexpect库.
pip install pexpect
提供的expect方法。至于您的代码,您可以尝试以下更改。