【发布时间】:2020-05-19 02:17:13
【问题描述】:
import paramiko
key = paramiko.RSAKey.from_private_key_file("abc.pem")
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print("connecting")
ssh.connect(hostname="1.1.1.1", username="abc", pkey=key)
print("connected")
commands = "ip a"
stdin, stdout, stderr = ssh.exec_command(commands)
print(stdout.read())
print(stderr.read())
print(stdin.read())
ssh.close()
为什么有时会在 Python3.8 中 AttributeError: 'NoneType' object has no attribute 'time' 有时需要等待很长时间才能显示为结果(或者我如何才能看到过程)
错误代码:
Exception ignored in: <function BufferedFile.__del__ at 0x108271ee0>
Traceback (most recent call last):
File "/venv/lib/python3.8/site-packages/paramiko/file.py", line 66, in __del__
File "/venv/lib/python3.8/site-packages/paramiko/channel.py", line 1392, in close
File "/venv/lib/python3.8/site-packages/paramiko/channel.py", line 991, in shutdown_write
File "/venv/lib/python3.8/site-packages/paramiko/channel.py", line 967, in shutdown
File "/venv/lib/python3.8/site-packages/paramiko/transport.py", line 1846, in _send_user_message
AttributeError: 'NoneType' object has no attribute 'time'
前进
我如何使用 paramiko 双 ssh
localhost >> a(服务器) ssh >> b
【问题讨论】:
-
请将所有完整错误回溯到您的问题!
-
异常忽略在:
文件“/venv/lib/python3.8/site-packages/paramiko/file.py”,第 66 行,在 del 文件“/venv/lib/python3.8/site-packages/paramiko/channel.py”,第 1392 行,关闭文件“/venv/lib/python3.8/site-packages/paramiko/channel. py”,第 991 行,在 shutdown_write 文件“/venv/lib/python3.8/site-packages/paramiko/channel.py”中,第 967 行,在关机文件“/venv/lib/python3.8/site-packages/ paramiko/transport.py",第 1846 行,在 _send_user_message AttributeError 中:'NoneType' 对象没有属性 'time' -
请编辑您的问题并在此处添加回溯,格式化为代码块。
-
已添加,感谢您的技术
-
查看代码,我建议您在运行
exec_command时设置超时。此外,我建议在解释器中逐行运行每个命令行,以查看究竟是哪个部分导致异常 - 我很好奇它是否是在读取 stderr 等期间以及缓冲区的结果仍然被写入而你'重新尝试阅读它。一切都失败了,提出一个错误报告,因为它是 3.8 并且您看到一个 Exception 被忽略的事实以及您获得的跟踪中的消息意味着它没有被它们提供的任何有意义的异常类捕获。
标签: python linux macos python-3.8