如何在 git bash 中查看 SSH 命令的代理配置?

如何在 git bash 中查看 SSH 命令的代理配置?

我在通过公司代理进行 SSH 时遇到了问题。

在我的 Windows 环境中 - SSH 运行良好:

$ ssh -v [email protected]
OpenSSH_7.5p1, OpenSSL 1.0.2k  26 Jan 2017
debug1: Reading configuration data /c/Users/davidj/.ssh/config
debug1: /c/Users/davidj/.ssh/config line 2: Applying options for github.com
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to github.com [192.30.255.112] port 22.
debug1: Connection established.
...

现在,在我的 Windows 任务栏中,有一个 ISA Server 防火墙客户端。如果我取消选中“为 ISA Server 启用 Microsoft 防火墙客户端”,那么我的 SSH 尝试将失败。

$ ssh -v [email protected]
OpenSSH_7.5p1, OpenSSL 1.0.2k  26 Jan 2017
debug1: Reading configuration data /c/Users/davidj/.ssh/config
debug1: /c/Users/davidj/.ssh/config line 2: Applying options for github.com
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to github.com [192.30.255.112] port 22.
debug1: connect to address 192.30.255.112 port 22: Connection timed out

所以这对于在 Windows 环境中工作来说非常好 - 我只需要启用防火墙客户端。

我的问题是,我正尝试在 Virtual Box 上的 Ubuntu VM 中工作。

Virtual Box 网络适配器是 NAT,没有端口转发。

只要我在 Ubuntu 中为 HTTP 和 HTTPS 设置了网络代理,VM HTTP 流量就可以正常工作。

但是,这里的 SSH 会给我拒绝连接的信息:

david@david-VirtualBox:~$ ssh -vvv [email protected]
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /home/david/.ssh/config
debug1: /home/david/.ssh/config line 2: Applying options for github.com
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "github.com" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to github.com [192.30.255.113] port 22.

有没有办法在这里调试我的 Windows 如何通过 SSH 连接到外界?

答案1

我会做以下事情:

在 Windows 主机上,我将运行wireshark(在端口 22 上)。然后尝试通过 ssh 从 Linux 客户机连接。您将看不到客户机连接到外部。

原因?

Virtual Box 网络适配器是 NAT,没有端口转发。

如果您有 NAT,那么您必须有端口转发。

您可以按照以下方式进行操作:配置 Virtualbox 以打开端口 22在您的主机上127.0.0.1(主机上的环回设备)并将其转发到您的内部 IP,例如 10.0.10.10(您的虚拟机的内部地址,从您的信息中我不知道该地址。)

此后,您将能够连接到外部。

编辑- 处理 ISA 服务器

忘记写 ISA 部分了。为此,您可能需要cygwin environmentOpenSSH server

这取自这里

去引用:

*** 我的肮脏的解决方案:

Linux <--> 带有 ISA 客户端的 Windoz <--> 带有 ISA 服务器的 Windoz

在我的带有 ISA 客户端的 Windows 上:

我安装了 Cygwin 环境 + OpenSSH 服务器(http:/pigtail.net/LRP/printsrv/cygwin-sshd.html)。

我配置了我的 ISA 客户端(WSPCFG.INI 和 CREDTOOL.EXE)。

C:\cygwin\usr\sbin(SSHD.EXE 文件夹)中的 WSPCFG.INI:[sshd] Persistent=1 KillOldSession=1 ForceCredentials=1

C:\Program Files\Microsoft Firewall Client\CREDTOOL.EXE -w -n sshd -c myusername mydomainname mypassword (myusername、mydomainname 和 mypassword 必须是 ISA 服务器凭据)

在我的Linux上:

ssh -fND1080 myusername:mypassword@mywindozisaclientname(myusername 和 mypassword 必须是带有 ISA 客户端的 Windoz 帐户)

因此我创建了一个动态端口转发(ssh 表现为 socks 服务器)。

我配置了我的邮件客户端程序(PROXY SOCKS = localhost,PORT = 1080)

答案2

你的防火墙客户端在企业界,端点安全非常流行。此类 (vpn) 软件会操纵客户端计算机上的路由表,使得其他网络在活动时无法访问。然而,当活动连接正常时。在这种情况下,解决方案是安装此防火墙客户端在来宾虚拟机中。

相关内容