如何随后在python paramiko -SSH客户端Linux中运行两个sudo命令?

时间:2018-08-22 00:23:38

标签: python paramiko

我正在尝试对本地计算机执行ssh-127.0.0.1,效果很好。 接下来,我试图通过ssh客户端运行两个命令。但是,我看到下一个命令失败。我可以看到我的水龙头设备已创建。但是,分接头设备没有打开。这是我的代码。我尝试了ifconfig,它工作正常。 但是,是sudo命令造成了问题。

self.serverName为127.0.0.1

  def configure_tap_iface(self):
        ssh = paramiko.SSHClient()
        print('SSH on to PC')
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(self.serverName, username='zebra', password='Zebra@2018')
        stdin, stdout, stderr = ssh.exec_command('ifconfig')
        #print(stdout.read())
        session = ssh.get_transport().open_session()
        session.get_pty()
        session.exec_command('sudo ip address add 192.168.0.1/24 dev cloud_tap && sudo ip link set cloud_tap up')
        session.close()
        time.sleep(3)
        ssh.close()

1 个答案:

答案 0 :(得分:1)

您可以使用sudo sh -c 'commands'在一次sudo调用中运行多个Shell命令。

session.exec_command("sudo sh -c 'ip address add 192.168.0.1/24 dev cloud_tap && ip link set cloud_tap up'")