python - 无法使用 Paramiko 包连接到服务器
问题描述
我正在尝试在 Python 中使用带有端口 2022(不是 22)的 SSH 连接到我的服务器。所以我编写了以下使用 Paramiko 包的代码:
import sys
import paramiko
try:
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.WarningPolicy)
client.connect('ccap@10.40.2.222', '2022', '', 'ccap')
finally:
client.close()
但是当我在我的 IDE (PyCharm) 中运行它时,我收到以下错误:
/usr/local/lib/python3.5/dist-packages/paramiko/ecdsakey.py:164:CryptographyDeprecationWarning:对从编码数据中不安全地构造公共数字的支持将在未来版本中删除。请使用 EllipticCurvePublicKey.from_encoded_point self.ecdsa_curve.curve_class(), pointinfo
Traceback(最近一次通话最后一次):
文件“/home/mshapirs/PycharmProjects/OnlineTest.py/OnlineTest.py”,第 9 行,在 client.connect('ccap@10.40.2.222', '2022', '', ' ccap')文件“/usr/local/lib/python3.5/dist-packages/paramiko/client.py”,第 334 行,在 connect to_try = list(self._families_and_addresses(hostname, port))
文件“/usr/local/lib/python3.5/dist-packages/paramiko/client.py”,第 204 行,在 _families_and_addresses 主机名、端口、socket.AF_UNSPEC、socket.SOCK_STREAM
文件“/usr/lib/python3.5/socket.py”,第 733 行,在 getaddrinfo
中用于 _socket.getaddrinfo(主机、端口、系列、类型、原型、标志)中的 res:socket.gaierror: [Errno -2] 名称或服务未知
解决方案
您应该提供用户名作为单独的参数,而不是附加到主机地址。
查看.connect
. 它有username
并hostname
单独列出。
推荐阅读
- algorithm - Big theta 介于 big o 和 big omega 之间,还是既是 big o 又是 big omega?
- javascript - 如何在关系中使用 findOrCreate - Adonis.js
- python - 如何使用 python sdk 访问 Azure 存储表中的最新条目?
- git - Git拉和合并?
- python - 遍历行然后列以构建 ColHeader:ColValue 字符串 python
- r - 将三个数据框的内容合并为一列
- python - 如何在Python中并行调用列表中每个对象的方法
- sql - 如何在函数中返回动态列数?
- jquery - jquery - 如何将基于 url 的 pdf 文件转换为 base64 并下载
- r - R:匹配向量之间的元素 - 如何优化代码