为防火墙后面的远程开发人员提供的超神奇ssh隧道。

rela的Python项目详细描述


为防火墙后面的远程开发人员提供的超神奇ssh隧道。

有没有试过把程序和在防火墙后面工作的人配对?你想用SSH连接他们的机器,但你不能通过使用中间的另一台服务器代理连接,中继可以与任何人共享您的开发环境。而且它不仅仅适用于ssh,您还可以在web服务器上建立隧道!

服务器设置

中继要求您有一个运行在公共场所的服务器,您可以使用该服务器在用户之间恢复连接我们在一个公共安全组中使用ec2 micro,但是你可以使用任何你想要的东西。您需要确保您在ports.json中映射的任何端口都对世界开放

安装

继电器可以安装在virtualenv中,但我们建议将其与sudo一起安装,以便它始终可用:

$ sudo pip install relay

一般设置

(nprapps用户请参阅下一节)

中继使用位于~/.relay.conf的配置文件使用以下内容创建此文件:

[relay]# User to connect to the relay server asuser=ubuntu# Hostname or IP of the relay serverserver=relay_server.your_domain.com# Absolute path to the public and private SSH keyspublic_key=/path/to/your/public_key.pubprivate_key=/path/to/your/private_key# Username of the pair programmer account on each developer computerpair_user=relay# Absolute path to the port mapping fileports_json=/path/to/your/ports.json# Absolute path to a file containing bash aliases to be installed when creating the pair programmer user accountbash_profile=/path/to/your/bash_profile

ports.json是用户本地端口到服务器上远程端口的映射,这样用户在创建SSH隧道时就不会发生冲突使用以下内容创建此文件:

{"chris":{"22":"2222","8000":"8000"},"katie":{"22":"2223","8000":"8001"},}

bash_profile是完全可选的,但可能包含您希望每个用户都自动可用的别名或环境变量。

现在需要创建一个relay用户。此过程是自动的:

$ relay setup

如果运行的是OSX,则需要为新创建的^{TT5}$用户启用远程登录。打开系统首选项并导航到“共享”首选项窗格。

选中“远程登录”旁边的复选框。您可以将relay用户添加到允许的用户中,也可以将其打开给“所有用户”。

remotelogin.png

NPRApps设置

预烘焙的配置文件位于Dropbox文件夹中必须安装Dropbox,同步到~/Dropbox,并将nprapps共享文件夹同步到本地计算机然后运行:

$ ln -s ~/Dropbox/nprapps/relay/relay.conf ~/.relay.conf
$ relay setup

共享ssh

要共享ssh连接(用于tmux'ing),请打开一个新终端(或选项卡或tmux窗格):

$ relay user:$USER share:22

其中$USER是您在ports.json中的用户名。

要连接到共享SSH连接:

$ relay user:$USER ssh

其中$USER是共享连接的用户的ports.json中的用户名。

共享开发Web服务器

要共享本地开发Web服务器,请打开一个新终端(或选项卡或TMUX窗格):

$ relay user:$USER share:8000

其中$USER是您在ports.json中的用户名

要在浏览器中连接打开共享Web服务器,请执行以下操作:

$ relay user:$USER web

其中$USER是共享web服务器的用户的ports.json中的用户名。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
tomcat Java条带错误   java OPENTSDB fsck修复程序不更正重复点   java JavaFX在控制器内切换自身的可见性   java maven surefire插件未并行执行运行程序   读取导致Freemarker模板引擎中TemplateException的Java对象   无法使Java库与我的Android应用程序一起工作   安卓 java。lang.IllegalStateException游标   使用Java检索XML文件中的XSL URL和名称   java如何从文本文件集合中提取特定值   电子邮件java mail gmail   java为什么finalize()只被垃圾收集器调用一次?   java方法findViewById(int)对于Json类型是未定义的。蛇形   java在安卓中尝试从brother打印机打印位图时遇到以下异常   java在颤振中支持Kotlin的优势   java从后面编写文本   java制作列表。第一个列表可以有相同的数字,第二个将是价格,尝试制作第三个列表,如果它们是相同的数字,它将添加价格