使用 python 连接 SSH 时出错

Getting error while connecting SSH using python

我正在尝试使用 python.

在 windows 中连接我的一台虚拟 CentOS 机器 运行

我已经安装了 paramiko 模块来做这个。但低于错误

C:\Users\xxxx\PycharmProjects\xxxx\venv\lib\site-packages\paramiko\kex_ecdh_nist.py:39: CryptographyDeprecationWarning: encode_point has been deprecated on EllipticCurvePublicNumbers and will be removed in a future version. Please use EllipticCurvePublicKey.public_bytes to obtain both compressed and uncompressed point encoding.
  m.add_string(self.Q_C.public_numbers().encode_point())
C:\Users\xxx\PycharmProjects\xxxx\venv\lib\site-packages\paramiko\kex_ecdh_nist.py:96: CryptographyDeprecationWarning: Support for unsafe construction of public numbers from encoded data will be removed in a future version. Please use EllipticCurvePublicKey.from_encoded_point
  self.curve, Q_S_bytes
C:\Users\xxxx\PycharmProjects\xxxx\venv\lib\site-packages\paramiko\kex_ecdh_nist.py:111: CryptographyDeprecationWarning: encode_point has been deprecated on EllipticCurvePublicNumbers and will be removed in a future version. Please use EllipticCurvePublicKey.public_bytes to obtain both compressed and uncompressed point encoding.
  hm.add_string(self.Q_C.public_numbers().encode_point())

下面是我的代码:

import paramiko

ssh = paramiko.client.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
    ssh.connect('10.xx.xx.xxx', username='root', password='xxxxx')
except paramiko.SSHException:
    print("Connection Failed")
    quit()

stdin, stdout, stderr = ssh.exec_command("ls /etc/")

for line in stdout.readlines():
    print
    line.strip()
ssh.close()

我搜索并安装了cryptography 2.6.1,python版本3.7.1 使用 PyCharm 2018.3 社区版.

请告诉我我做错了什么

这些不是错误,这些是 paramiko 抛出的警告,他们需要更新代码以使用更多最新参数。不过,您的代码仍应 运行 。最好的办法是查看是否有更新版本或向 paramiko 软件包的作者提出问题。

Paramiko 使用的方法已弃用。您应该考虑将 Python 降级到较低版本或下载 Paramiko

的更新(如果存在)版本