我在这里做什么其实并不清楚,请您谅解,如果您能帮助我,我会非常感激!
我正在尝试通过代理连接到我的虚拟服务器,但无法连接,连接就一直挂着。我猜测这是因为无法通过我们的代理。
我在家也尝试了完全相同的操作,效果完美。我使用Terminal在OS X上进行连接。
请问有人可以指导我如何通过SSH穿过代理吗?
我在这里做什么其实并不清楚,请您谅解,如果您能帮助我,我会非常感激!
我正在尝试通过代理连接到我的虚拟服务器,但无法连接,连接就一直挂着。我猜测这是因为无法通过我们的代理。
我在家也尝试了完全相同的操作,效果完美。我使用Terminal在OS X上进行连接。
请问有人可以指导我如何通过SSH穿过代理吗?
编辑配置文件:
.ssh/config
Host github.com
HostName github.com
User git
Port 22
ProxyCommand nc -X 5 -x 192.168.49.1:8000 %h %p
并测试:
ssh -T git@github.com
Hi [username]! You've successfully authenticated, but GitHub does not provide shell access.
我曾在Ubuntu下使用以下行(可以用适当的命令行参数替换)在我的.ssh/config
中。
Host remhost
HostName my.host.com
User myuser
ProxyCommand nc -v -X 5 -x proxy-ip:1080 %h %p 2> ssh-err.log
ServerAliveInterval 30
ForwardX11 yes
gnu-netcat
后,文件ssh-err.log
显示选项-X
不存在。nc --help
确认了这一点,并似乎表明没有替代选项来处理代理。
因此,我安装了openbsd-netcat
(pacman
询问后删除了gnu-netcat
,因为它与openbsd-netcat
冲突)。初看起来,检查相应的手册页面,openbsd-netcat
和Ubuntu netcat
似乎非常相似,特别是关于选项-X
和-x
。
有了这个,我毫无问题地连接了。1080
可以是 socks5 端口
。 - Ferris要连接到SOCKS5代理,只需运行以下命令:
ssh user@destination -o "ProxyCommand=nc -X 5 -x proxyhost:proxyport %h %p"
或者将代理设置添加到.ssh/config
文件中。
Host destinaion_host
HostName destinaion_host
User ali
ProxyCommand nc -X 5 -x proxyhost:proxyport %h %p
ServerAliveInterval 60
ServerAliveCountMax 10
那么您只需运行ssh destinaion_host
特别感谢 @maxim-k
/Users/a.abdi-kelishami/.ssh/known_hosts
-o "ProxyCommand=nc --proxy HOST:PORT %h %p"
。它在 OEL6 上有效,但需要根据 OEL7 的要求进行修改。如果在CentOS / RHEL上有任何人遇到以下问题
nc: invalid option -- 'X'
ProxyCommand nc --proxy HOST:PORT --proxy-type http %h %p