我可以使用pexpect ssh到服务器,并且没有登录和运行命令的问题。但是,我想切换到使用paramiko来进行ssh连接,这样我就可以利用其他一些paramiko模块了。但是,当我使用paramiko时,我收到错误:
sock.connect((hostname, port))
File "<string>", line 1, in connect
socket.error: [Errno 113] No route to host
我不明白为什么它没有说主持人的路线,因为我可以通过pexpect显示我或者只是简单地ssh到节点来到达节点。
对于可能存在的问题的任何帮助将不胜感激。我不知道如何对此进行故障排除。
我运行的paramiko启用了这样的调试,但我没有得到任何调试消息,脚本立即失败:
paramiko.common.logging.basicConfig(level=paramiko.common.DEBUG)
答案 0 :(得分:1)
如果您可以发布您正在使用的代码的简化示例,将会很有帮助。
检查以确保名称解析正确发生:
socket.gethostbyname(hostname)
另外,我不确定你为什么直接使用socket
?或者是你在
你应该能够用这样的东西完成你想要的东西:
from paramiko.client import SSHClient
client = SSHClient()
client.load_system_host_keys()
client.connect('ssh.example.com')
stdin, stdout, stderr = client.exec_command('ls -l')
print stdout
如果您提供了完整的错误消息,堆栈跟踪和您正在使用的代码,那将会更有帮助。