无法通过python连接到ssh

无法通过python连接到ssh,python,ssh,Python,Ssh,因此,我刚刚设置了一个新的raspberry pi,我希望它使用ssh从我的计算机到我的ssh服务器,即pi,与python进行通信。。我首先尝试使用putty进行连接,它可以工作,我可以执行我想要的所有命令,然后我尝试使用库,如Paramiko、Spur,但它们不工作 刺激码: import spur shell = spur.SshShell("192.168.1.114", "pi", "raspberry") result = shell.run("ls") print result

因此,我刚刚设置了一个新的raspberry pi,我希望它使用ssh从我的计算机到我的ssh服务器,即pi,与python进行通信。。我首先尝试使用putty进行连接,它可以工作,我可以执行我想要的所有命令,然后我尝试使用库,如Paramiko、Spur,但它们不工作

刺激码:

import spur

shell = spur.SshShell("192.168.1.114", "pi", "raspberry")
result = shell.run("ls")
print result
帕拉米科代码:

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())             
ssh.connect(host, username, password)
以下是错误代码:

spur.ssh.ConnectionError: Error creating SSH connection
Original error: Server '192.168.1.114' not found in known_hosts
这是spur的错误,但它在paramiko上几乎说了同样的话


提前感谢:)

您需要接受主机密钥,与所示内容类似


编辑:更有用的链接()

请参阅更新的答案,您的代码看起来相似吗?如果是的,是和以前一样的错误吗?好的,是的,它工作了,现在我只得到一个NoSuchCommand错误Command not found l:)完美的如果我的回答有帮助,请不要忘记接受。对于普通读者来说,
spur.ssh.MissingHostKey.accept
不是好的做法。Spur(和SSH工具/协议)默认拒绝未知密钥的原因之一是为了防止MITM攻击。“正确”的过程是根据物理服务器或某些云等效物检查公钥指纹,然后在尝试连接到它之前将其添加到您的
known_hosts
文件中。实际上,更好的做法是(在看到被拒绝的密钥后)提示(就像在正常SSH连接时一样)。“正确”的程序是打电话给服务器管理员,让他把代码读给你,这样它就不会被劫持,但这种情况不太可能发生。
import spur
shell = spur.SshShell("192.168.1.114", 
                      "pi", 
                      "raspberry", 
                      missing_host_key=spur.ssh.MissingHostKey.accept)
result = shell.run("ls")
print result