我对 SSH 和 Ubuntu 还不太熟悉。我正尝试server1.com
通过 SOCKS5 代理主机(例如)连接到服务器(例如proxy1.com
),该主机的用户名和密码已给出。我在 SSH 配置文件中包含了跳转主机指令以及代理用户名和密码的路径,但到目前为止还没有成功,因为我总是收到错误:
无法解析代理主机名
我的.ssh/config
文件格式如下:
Host host1
HostName server1.com
Port 22
ProxyCommand ssh username:[email protected] portnum %h %p
然后我用它ssh host1
来启动会话。
谁能给我提供可能的解决方案?
答案1
ssh
不接受您尝试的格式的密码,也不能使用 SOCKS 代理本身。代理命令应该使用ncat
:
ProxyCommand ncat --proxy socks4host --proxy-type socks4 --proxy-auth username:password proxy.com portnum
或类似的东西。
答案2
我在使用该命令时遇到了一些问题ncat
- 看起来它错误地实现了 SOCKS5 协议,并且没有读取代理服务器响应的一部分,然后滑入 ssh 数据并中断 ssh 连接。我改用 Ubuntu 包connect-proxy
。
$ sudo apt-get install connect-proxy
$ SOCKS5_PASSWD=proxypassword ssh -o "ProxyCommand=connect-proxy -5 -S [email protected] %h %p" server1.com