python - SSHTunnelForwarder - “IP 不是字符串 (NoneType)”
问题描述
我正在尝试使用 SSHTunnelForwarder。我收到错误“IP 不是字符串 (NoneType)”。如果我理解正确,这意味着我传递的主变量是 NoneType 类型,并且需要是 String 类型。打印出变量类型表明它是字符串类型:<class 'str'>。
我已经概括了有问题的代码。见下文:
def connectToClient(client):
key, host = getClientInfo(client)
# Both of the below print statements return <class 'str'>
print(type(key))
print(type(host))
try:
with SSHTunnelForwarder(
ssh_username = "username",
ssh_private_key = key,
remote_bind_address = (host, 22)) as server:
# Do stuff here
except Exception as e:
# Handle exception
堆栈跟踪(编辑以隐藏文件系统信息和 .py 文件名。也使用 0.0.0.0 进行测试):
Traceback (most recent call last):
File "/path/to/file/myPythonFile.py", line 83, in connectToClient
remote_bind_address = ('0.0.0.0', 22)) as server:
File "/path/to/file/lib/python3.6/site-packages/sshtunnel.py", line 908, in __init__
check_host(self.ssh_host)
File "/path/to/file/lib/python3.6/site-packages/sshtunnel.py", line 79, in check_host
type(host).__name__
AssertionError: IP is not a string (NoneType)
我想指出的是,即使我将主机变量替换为包含 IP 的字符串(即“127.0.0.1”),我仍然会收到相同的错误。
也许我犯了一个简单的错误。有任何想法吗?
编辑:修复格式并添加堆栈跟踪
解决方案
推荐阅读
- macos - 无法从我的 Mac 上的 Genero Studio 连接到 Virtual Box Linux 环境中的 Informix 数据库服务器设置
- android - Android Navigation java.language.IllegalStateException 片段类未设置
- c# - 我使用“HttpContext.Current”,但调试时出现错误“HttpContext”不包含“Current”的定义
- firebase - Firebase init - 错误:意外的规则格式.rules
- ssh - 浏览器可以通过 ssh(ssh 隧道)进行本地端口隧道吗?
- google-apps-script - 希望创建一个可以提出问题的 Google 表单
- php - 从 Drupal 的后台执行一个 php 脚本
- react-native - 目前关于将数据传递到标签导航以进行反应导航的共识是什么?
- c# - 从模板(.oft 文件)发送电子邮件 - 使用 C# 的 Exchange 服务
- powershell - 将powershell脚本的结果导出到csv