使用django通过SSH隧道连接到远程服务器

时间:2016-08-25 13:20:21

标签: django azure ssh ssh-tunnel

我正在尝试设置SSH隧道来访问我的服务器(目前是Azure上的ubuntu 16.04 VM),以便安全访问在其上运行的django应用程序。

我能够使用Apache WSGI模仿生产环境并且它的工作非常好但是因为我正在尝试开发应用程序,所以我现在不想让更广泛的公众可以使用它 - 而是让它只显示对于一群人。

重点:当我在Windows 10上使用putty设置ssh隧道(8000到localhost:8000)并运行http://localhost:8000/时,我收到以下错误:

  

“未找到HTTP错误404.找不到请求的资源。”。

我怎样才能让它发挥作用?我使用manage.py runserver 0:8000运行服务器。 我发现错误的原因可能是应用程序无法访问ssh文件,但我不知道这是否重要(或如何更改)。

此致

多米尼克

1 个答案:

答案 0 :(得分:0)

经过几个小时的尝试,我能够解决问题。

首先,我确保putty连接到服务器并创建所需的隧道。为此,我右键单击putty窗口(标题栏)并单击事件日志。我检查了日志,发现以下错误:

  

本地端口8000转发到localhost:8000失败:网络错误:   许可被拒绝

我能够通过选择其他本地端口(在我的实例中为9000而不是8000)来解决它。

其次,我编辑了sshd_config文件:sudo vi etc/ssh/sshd_config

并添加了这三行:

 AllowAgentForwarding yes
 AllowTcpForwarding yes 
 GatewayPorts yes

我保存了文件并重新启动了ssh服务:

 sudo service ssh stop
 sudo service ssh start

现在,当我访问localhost时:9000一切正常。