【发布时间】:2018-02-26 02:12:14
【问题描述】:
我对 Python 和 Paramiko 有一些问题。我想连接到一个 SSH 服务器来自动读取来自不同系统的一些信息。
我尝试了一些在这里找到的提示,但没有任何效果。我检查了主机文件,使用 brew 重新安装 Python,更新/升级 Python 和 Paramiko,使用本地主机上的 ssh-server 进行测试。同时运行 pip 来更新 paramiko 和 python。
我很困惑。请让我问你。
这是我的工作环境:
- MacOS Sierra 10.12.6
- Python 2.7
- 日食
- SSH 库:Paramiko (paramiko-2.2.1-py2.py3-none-any.whl)
脚本:基本 Paramiko SSH 连接
'''
Created on 16.09.2017
'''
import sys
import telnetlib
import paramiko
host = '213.000.000.123' #
user = "user"
password = "password"
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, user, password)
在 Eclipse 上运行脚本会产生以下输出:
Traceback (most recent call last):
File "/Users/tschaefer/Documents/workspace/PythonCMTSLibs/basicSSHSessionModule.py", line 17, in <module>
ssh.connect(host, user, password)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/paramiko/client.py", line 301, in connect
to_try = list(self._families_and_addresses(hostname, port))
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/paramiko/client.py", line 199, in _families_and_addresses
hostname, port, socket.AF_UNSPEC, socket.SOCK_STREAM)
socket.gaierror: [Errno 8] nodename nor servname provided, or not known
好的,我找到了 gai=getaddrinfo,还有 getaddrbyname 等等。所以我认为将主机字符串解析为 IP 地址存在问题。但是将 IP 地址解析为 IP 地址是没有意义的。我使用了显式IP。 直接在 CLI 上使用“ssh 213.000.000.123”命令可以正常工作。
我还尝试连接到“localhost”或“127.0.0.1”或“google.com”或其他。 hosts-file-entry 没有注释,因此它处于活动状态。结果:同样的情况。
NSLOOKUP 工作正常,因此 DNS 查找工作正常并且 DNS 服务器可用。
似乎Python可以从Eclipse中找到paramiko库,但是库中存在问题。
谁能帮我看看我的眼睛看不到的东西。
非常感谢!
问候
【问题讨论】:
标签: python eclipse ssh macos-sierra paramiko