我在通过公司代理进行 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 environment
和OpenSSH 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) 软件会操纵客户端计算机上的路由表,使得其他网络在活动时无法访问。然而,当活动连接正常时。在这种情况下,解决方案是安装此防火墙客户端在来宾虚拟机中。