【发布时间】:2019-01-21 18:26:59
【问题描述】:
我正在尝试修复最初在 Python 2.X 中开发的一段代码。我必须使用所有标准库,删除 paramiko,并且需要保持功能相同。可以看到,有端口号配置,用户名,密码等。有什么建议吗?
我尝试了其他 SSH 选项,但都没有奏效。它返回一个错误。
def grab_and_post_inventory_data(machine_name):
try:
if not USEKEYFILE?: ssh.connect(str(machine_name), port=PORT, username=USER, password=PASSWORD, timeout=TIMEOUT)
else: ssh.connect(str(machine_name), port=PORT, username=USER, key_filename=KEY_FILE, timeout=TIMEOUT)
except paramiko.AuthenticationException:
print(machine_name + ': authentication failed')
return None
except Exception as err:
print(machine_name + ":" + err)
return None
devargs = {}
输出是一个错误,说 ssh 未定义。没有 ssh 库。我尝试了其他解决方案,但无济于事。有任何想法吗?同样,我只需要使用标准库并删除 paramiko。
【问题讨论】:
-
如果你没有
ssh库,我唯一能想到的就是使用subprocess库运行ssh命令。甚至不要考虑尝试使用套接字自己实现 SSH 协议。 -
在子进程中实现用户名、密码、端口等的最佳方式是什么?你能举个例子吗?
-
用户名和端口可以指定为
ssh命令的参数。最好通过使用公钥身份验证来避免密码。如果你需要解析提示,整个事情会很复杂,这就是他们为它编写库的原因。
标签: python linux python-3.x ssh paramiko