我有一个问题,在 cygwin 下,http_proxy env 变量被忽略。我试过大写和小写的变量名,只是没有被 ssh 读取。
export HTTP_PROXY="http://user:pass@proxy.job.com:8080/"
Run Code Online (Sandbox Code Playgroud)
不使用代理
ssh myuser@home.com
Run Code Online (Sandbox Code Playgroud)
使用代理
wget http://home.com/
Run Code Online (Sandbox Code Playgroud)
有没有人看到我做错了什么?
你的问题不清楚,因为你没有解释你想要达到的目标。我要冒险猜测,这当然可能是错误的。我的猜测是:
home.com;ssh home.com 不起作用(挂起或显示错误消息),因为您的工作防火墙阻止了传出连接;user:pass@proxy.job.com:8080 是您在工作时在 Web 浏览器中配置的代理。由于 ssh 使用 ssh 协议,而不是 http 或 https 协议,因此它不关心http_proxyorhttps_proxy变量。
有一种方法可以通过 https 代理隧道传输 ssh 流量。代理无法区分 ssh 流量和 https 流量,因为它们都是加密的。可以执行此操作的三个程序是 netcat(OpenBSD 版本)、corkscrew 和 connect-proxy。我将举一个我知道在 Cygwin 中提供的开瓶器示例。在您的.ssh/config文件中使用以下设置:
寄宿家庭 主机名 home.com 用户 myuser ProxyCommand /usr/bin/corkscrew proxy.job.com 8080 %h %p /path/to/corkscrew/authfile
并放置一行包含user:passin /path/to/corkscrew/authfile。
某些代理不允许您连接到端口 22(正常的 ssh 端口),只能连接到端口 443(正常的 https 端口)。如果您可以控制 上的服务器home.com,您也可以让它侦听端口 443:很可能您想要将 443 添加到文件中的Port行sshd_config,或者重定向家庭路由器上端口 443 上的传入连接到 sshd 机器上的端口 22。然后添加Port 443下面HostName的线.ssh/config。
或者,如果您的防火墙穿透工作失败,请考虑在防火墙外的 Web 服务器上安装Ajaxterm。
| 归档时间: |
|
| 查看次数: |
9058 次 |
| 最近记录: |