OSError:隧道连接失败:需要 407 代理授权 - snowsql
Posted
技术标签:
【中文标题】OSError:隧道连接失败:需要 407 代理授权 - snowsql【英文标题】:OSError: Tunnel connection failed: 407 Proxy Authorization Required - snowsql 【发布时间】:2020-08-03 19:46:35 【问题描述】:我正在尝试使用命令行参数 snowsql -c 示例连接到雪花数据库,但出现以下错误。
Failed to execute request:
HTTPSConnectionPool(host='xyz.azure.snowflakecomputing.com', port=443): Max retries exceeded with url: /session/v1/login-request?request_id=90925166-6058-4526-bdc8-46b3710576c6&request_guid=ff7507a5-7368-46d6-89e5-155b00fb651a (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required',)))
【问题讨论】:
【参考方案1】:需要代理验证
您的连接似乎是通过需要身份验证的代理进行的。根据 snowsql 帮助:
--proxy-host TEXT (DEPRECATED. Use HTTPS_PROXY and HTTP_PROXY
environment variables.) Proxy server
hostname. Honors $SNOWSQL_PROXY_HOST.
因此我认为您想要配置 HTTPS_PROXY。你可以这样做:
HTTPS_PROXY=http://user:password@proxy:port/
例如
export HTTPS_PROXY=http://user:password@proxy:port/
snowsql
或
env HTTPS_PROXY=http://user:password@proxy:port/ snowsql
【讨论】:
感谢您的回答!我能够使用本地机器上的相同代理成功连接到雪花数据库,而无需设置任何环境变量。现在,我试图在远程服务器上做同样的事情,我遇到了这个问题。我已经设置了环境变量,但没有用户名和密码。该代理是公司提供的。我不知道代理可以有用户名和密码。我不确定用户名和密码可能是什么,需要弄清楚。 他们可能不需要来自本地计算机的身份验证,因为您是唯一登录的用户,但在远程服务器上,可能是任何人,因此他们需要用户名/密码进行审核。 尝试使用用户名和密码更新环境变量,仍然得到同样的错误。【参考方案2】:尝试将NO_PROXY="xyz.azure.snowflakecomputing.com"
添加到您机器上的环境变量中,例如
export NO_PROXY="xyz.azure.snowflakecomputing.com"
【讨论】:
以上是关于OSError:隧道连接失败:需要 407 代理授权 - snowsql的主要内容,如果未能解决你的问题,请参考以下文章
无法通过代理进行隧道传输。代理通过 https 返回“HTTP/1.1 407”
在需要身份验证但不返回 407 的代理后面打开 http 连接
需要 TFS PowerTools 代理身份验证 HTTP 代码 407