如何在python中转义exec_command中的特殊字符

如何在python中转义exec_command中的特殊字符

我正在尝试使用 paramiko 从一台服务器连接到另一台服务器。这是代码:

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, username='abc', password='password')
stdin, stdout, stderr = ssh.exec_command('ssh xyz@host1 ls')

由于特殊字符“@”,我无法运行上面的代码。有人可以建议我如何解决它。

我能够ssh xyz@host1 ls在腻子中成功运行命令。但通过 python 代码它不起作用。

答案1

用户名和主机已在您的中指定ssh.connect,因此无需执行ssh xyz@host1.你可以这样做:

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, username='abc', password='password')
stdin, stdout, stderr = ssh.exec_command('ls')

ssh.connect正在建立连接,因此您不需要再次执行 ssh。

相关内容