我正在尝试使用 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。