使用 sshtunnel 模块的 SSH 隧道不允许空密码

问题描述 投票:0回答:1

我正在尝试使用 sshtunnel 模块从 Windows 计算机启动 ssh 隧道到 Linux 计算机,其中我的 Linux 计算机没有密码。

from sshtunnel import SSHTunnelForwarder

server = SSHTunnelForwarder(
    '172.30.1.101',
    ssh_username="root",
    ssh_password="",
    remote_bind_address=('127.0.0.1', 1883)
)

server.start()

我不断出现以下错误。

remote_bind_address=('127.0.0.1', 1883)
  File "C:\Users\Chirag.Acharya\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sshtunnel.py", line 905, in __init__
    logger=self.logger
  File "C:\Users\Chirag.Acharya\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sshtunnel.py", line 1096, in _consolidate_auth
    raise ValueError('No password or public key available!')
ValueError: No password or public key available!

该怎么办!我的 ssh 不需要任何密码! root 用户没有设置登录密码。

python ssh-tunnel
1个回答
0
投票

any环境中配置any帐户并使用空白密码进行SSH身份验证是一个非常的坏主意。请认真考虑您在这种设置下所承担的风险。

话虽如此...


sshtunnel
库(在当前迭代中)不支持目标系统的 SSH 密码为空的场景。这是因为 它执行身份验证信息检查的方式

if not ssh_password and not ssh_loaded_pkeys:
    raise ValueError('No password or public key available!')

由于 您为

ssh_password
传递的空白字符串是“假”,因此库(正确地)抛出此错误。

如果您足够勇敢,您可以分叉存储库并调整此逻辑,使其明确允许将空白字符串作为有效的 SSH 密码传递:

if (not ssh_password and ssh_password != '') and not ssh_loaded_pkeys:
    raise ValueError('No password or public key available!')

之后,就需要 在当前版本上安装分叉分支

© www.soinside.com 2019 - 2024. All rights reserved.