使用Paramiko在Python中使用ssh进入ftp服务器

时间:2015-07-17 19:07:29

标签: python ssh ftp paramiko

我正在使用以下代码进入ftp servers

ssh = paramiko.SSHClient()
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("locate my_file.txt")
print ssh_stdout

但是,我正在使用多个服务器,所以我经常更换server参数。在我试图连接的主ftp server上,我收到此错误:

socket.error: [Errno 60] Operation timed out

每当我尝试使用其他服务器时,我通常会收到此错误:

paramiko.ssh_exception.S SHException: 
Server 'ftp.server.org' not found in known_hosts

有没有人知道解决这些问题中的一个或两个的任何可能的解决方案?

2 个答案:

答案 0 :(得分:2)

要解决第二个错误,您可以告诉Paramiko自动添加新服务器:

 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

看看the docs

答案 1 :(得分:1)

对于第二个问题,您需要在ssh = paramiko.SSHClient()之后添加以下行:

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

这将允许paramiko自动接受未知密钥(并允许您通过SSH连接到其他服务器)