如何以编程方式在iPhone上设置ssh隧道来访问远程服务?

时间:2011-06-03 14:52:08

标签: iphone objective-c sockets ssh

我正在开发一个iPhone应用程序,它通过tcp套接字连接与远程服务进行通信(该服务实际上侦听了telnet并且也接受了telnet命令)。连接当然是不安全的,并且所有请求(具有相当多的敏感数据,例如密码)和响应都以纯文本形式传输。我的第一反应是考虑使用ssl进行Web服务,但从头开始开发Web服务似乎太冗长了。

因此我一直在考虑使用ssh隧道来保护流量。是否可以在iPhone应用程序中设置ssh隧道(例如,使用libssh2),然后使用该隧道安全地连接到远程服务?如果是这样,我应该如何设置隧道,最重要的是,我应该如何连接到远程服务并发出命令/接收响应?最后,关于隧道我应该记住什么?

编辑:我忘了提到运行该服务的服务器正在使用Windows。 SSH是通过Cygwin实现的。

我很抱歉,如果这个问题太基础了,但这真的是我第一次使用ssh进行真正的刷机。

1 个答案:

答案 0 :(得分:0)

我认为通过使用ssh隧道可能会遇到更多安全问题,因为没有一种安全的方法可以在应用程序中绑定身份验证信息,如果有人可以获取该登录信息,他们可以设想连接到您的ssh会话并开始尝试发出任意命令。当然有办法锁定ssh会话,但是,我仍然非常警惕。至少对于Web服务,它充当iPhone应用程序和telnet会话之间的“代理”,因此您可以添加额外的保护层。