Jul 25

macOS命令终端通过http代理访问公网ssh 不指定

djangowang , 19:40 , 工作相关 » macOS , 评论(0) , 引用(0) , 阅读(115) , Via 本站原创 | |
背景介绍
一般情况下公司为了网络安全会把网络分为几类:
1 开发网,可以访问内部程序仓库和内部网站,但禁止直接访问公网只能通过代理访问公网;
2.办公网,可以访问内部部分网站不能访问程序仓库,可以访问公网;
3.访客网,可以访问公网,但不能范文内部资源。

问题
目前笔者在公司的开发网,这就出现了一个问题我希望可以访问我自己的公网服务器譬如blog.puppeter.com(下文简称为”A”),需要先从开发网登陆内部一台带公网IP的服务器再由这服务器跳转到A服务器上,相对比较麻烦,今天搞了一个本地http的ssh代理服务器相对就比较方便多了,笔者环境是macOS以下来介绍一下配置过程。

配置过程

1.  首先安装 corkscrew ,它是一个http代理ssh的软件。

brew install corkscrew


2.  编辑./ssh/config文件增加以下内容。通过配置让本地ssh连接远程机器时通过本地的corkscrew走代理服务器。

Host *
ProxyCommand corkscrew 代理服务器ip 端口 %h %p

或者

Host *
ProxyCommand corkscrew 代理服务器ip 端口 %h %p ~/.ssh/proxyauth

其中.ssh/proxyauth文件中可以存放被访问代理服务器的账号和密码,譬如以下这样:

cat .ssh/proxyauth
<username>:<passwd>


3. 在开发网环境下,再次通过以往方式(如下)直接连接你的服务器连接成功。这里就是通过本地corkscrew走http方式连接开发网下的代理服务器访问远程服务器的。

ssh -l root blog.puppeter.com


4. 还有一种方式,直接通过nc来连接代理服务器的方式。

ssh   -o "ProxyCommand=nc -X connect -x 代理服务器和端口 %h %p"  -l root blog.puppeter.com -p 22

其中nc的-X中 connect是用来连接https的参数 , -x是连接代理服务器的地址与端口参数,更详细见nc --help帮助。



参考:
corkscrew: http://mtu.net/~engstrom/ssh-through-http-proxy/

发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]