我正在尝试使用SSH在Python中使用端口2022(而非22)连接到我的服务器。因此,我编写了以下使用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
回溯(最近通话最近):
在第9行的“ /home/mshapirs/PycharmProjects/OnlineTest.py/OnlineTest.py”文件中 client.connect('ccap@10.40.2.222','2022','','ccap')connect中的文件“ /usr/local/lib/python3.5/dist-packages/paramiko/client.py”,第334行 to_try = list(self._families_and_addresses(主机名,端口))
文件“ /usr/local/lib/python3.5/dist-packages/paramiko/client.py”,第204行,位于_families_and_addresses中 主机名,端口,套接字。AF_UNSPEC,套接字.SOCK_STREAM
getaddrinfo中的文件“ /usr/lib/python3.5/socket.py”,行733
_socket.getaddrinfo(主机,端口,家庭,类型,原型,标志)中的res:socket.gaierror:[Errno -2]名称或服务未知
答案 0 :(得分:1)
您应提供用户名作为单独的参数,而不是主机地址之前。
Look at the docs for .connect
。它分别列出了username
和hostname
。