我的测试套件有问题。我使用机器人框架和python。我在python中创建了一个函数,该函数在远程Linux客户端中执行控制台命令。
def purge_default_dns(device_ip):
ssh_val = "usr1@" + device_ip
command = "ctool dns | grep -v \"grep\" | awk \'{print $2}\'"
test = check_output(["ssh", ssh_val, "-p", "6022", command])
该check_output()功能连接device_ip并执行命令。如果我尝试使用完全限定的域名(例如my.domain.io)进行连接,则会提示输入密码(该密码为空)。我按Enter键,命令会定期执行。是否有任何参数传递,例如出现密码提示时输入Enter?我尝试过ssh -eswitch,我不想更改ssh client,我只需要一个通用的解决方案。
例如,在下面的代码中使用paramiko库,我可以创建一个paramiko SSHClient,它具有用于密码的参数并且不提示任何内容。虽然我现在不能使用paramiko,但我还需要SSHLirary来解决此问题。
def send_ssh_command(device_ip , command):
hostname = device_ip
password = ""
username = "usr1"
port = 6022
try:
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.WarningPolicy())
client.connect(hostname, port=port, username=username, password=password)
stdin , stdout , stderr = client.exec_command(command)
command_return_val = stdout.read()
finally:
client.close()
return command_return_val
慕斯709654
相关分类