Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法使用paramiko连接到远程主机?_Python_Ssh_Pip_Scp_Paramiko - Fatal编程技术网

Python 无法使用paramiko连接到远程主机?

Python 无法使用paramiko连接到远程主机?,python,ssh,pip,scp,paramiko,Python,Ssh,Pip,Scp,Paramiko,我想使用scp在两台Ubuntu服务器之间传输文件,我已经在两个系统之间测试了scp,它工作得非常好。所以我不想每次需要获取文件时都执行命令,所以我想编写一个python脚本,使用scp自动从其他主机下载文件 在网上搜索时,我发现了此模块,安装此模块时遇到问题,我已使用模块加密技术纠正了此问题。现在,下面用终端解释了真正的问题 >>> from paramiko import SSHClient >>> from scp import SCPClient &g

我想使用scp在两台Ubuntu服务器之间传输文件,我已经在两个系统之间测试了scp,它工作得非常好。所以我不想每次需要获取文件时都执行命令,所以我想编写一个python脚本,使用scp自动从其他主机下载文件

在网上搜索时,我发现了此模块,安装此模块时遇到问题,我已使用模块
加密技术
纠正了此问题。现在,下面用终端解释了真正的问题

>>> from paramiko import SSHClient
>>> from scp import SCPClient
>>> ssh = SSHClient()
>>> ssh
<paramiko.client.SSHClient object at 0x1a41c90>
>>> ssh.load_system_host_keys()
>>> ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
>>> ssh.connect('somename@192.168.100.100')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 296, in c                                                                                    onnect
    to_try = list(self._families_and_addresses(hostname, port))
  File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 200, in _                                                                                    families_and_addresses
    addrinfos = socket.getaddrinfo(hostname, port, socket.AF_UNSPEC, socket.SOCK_S                                                                                    TREAM)
socket.gaierror: [Errno -2] Name or service not known
>>> ssh.connect('192.168.100.100')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 361, in c                                                                                    onnect
    server_key)
  File "/usr/local/lib/python2.7/dist-packages/paramiko/client.py", line 672, in m                                                                                    issing_host_key
    raise SSHException('Server %r not found in known_hosts' % hostname)
paramiko.ssh_exception.SSHException: Server '192.168.100.100' not found in known_hos                                                                                    ts
来自paramiko import SSHClient的
>>
>>>从scp导入scp客户端
>>>ssh=SSHClient()
>>>ssh
>>>ssh.load\u system\u host\u keys()
>>>ssh.set_缺少_主机_密钥_策略(paramiko.AutoAddPolicy())
>>>ssh.connect('somename@192.168.100.100')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib/python2.7/dist-packages/paramiko/client.py”,第296行,在c-connect中
to_try=list(self._families_和_地址(主机名、端口))
文件“/usr/local/lib/python2.7/dist-packages/paramiko/client.py”,第200行,位于家庭和家庭地址中
addrinfos=socket.getaddrinfo(主机名、端口、socket.AF_unsec、socket.SOCK_S)
socket.gaierror:[Errno-2]名称或服务未知
>>>ssh.connect('192.168.100.100')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib/python2.7/dist-packages/paramiko/client.py”,第361行,在c-connect中
服务器(U密钥)
文件“/usr/local/lib/python2.7/dist packages/paramiko/client.py”,第672行,缺少主机密钥
引发SShexException('在已知的\u主机“%hostname”中找不到服务器%r)
paramiko.ssh_exception.SSHException:在已知目录中找不到服务器“192.168.100.100”
为了安全使用,我更改了ip和用户名
somename已被替换
,但我已尝试使用
原始用户名
。因此我尝试了几次,但仍然收到相同的错误


关于这个问题有什么建议吗?请帮助。

可能您缺少缺少主机密钥策略

这个怎么样:

proxy = None
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(host['hostname'], username=host['user'], sock=proxy)
更多示例如下:

尝试使用以下方法:

ssh.connect('host',username='username',password='password')
若要跳过密码并在不提供密码的情况下连接,还可以将公钥添加到服务器中的已知主机。 在这种情况下,请使用:

ssh.connect('host',username='username'))

对我来说,解决方案是:

client = SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(AutoAddPolicy())
client.connect(host, username=user,password=password)

你想把这个解决方案解释得更清楚一点吗?仅仅粘贴一些代码是可以的,但是请详细说明为什么这段代码修复或解决了这个问题。