Python:将Telnet应用程序转换为SSH
我写了一个Python的Telnet客户端,用来通过Telnet和服务器沟通。但是,很多人告诉我这样做不安全。我该怎么把它改成SSH呢?我需要完全重写我的程序吗?
3 个回答
1
在你的Python应用程序中,可以使用这些库来与服务器上的SSHD守护进程进行通信:
http://wiki.python.org/moin/SecureShell
你还需要查看一些可以帮助你安全设置SSHD的资料,比如这个:
http://www.linuxjournal.com/article/8759
另外,你还需要定期更新SSHD守护进程,并使用密钥和强密码,最好是定期更换密码。这些都是telnet应用程序的标准做法,但由于telnet没有传输层加密,实际上你不应该用telnet做任何事情。
1
虽然Telnet不太安全,但它其实就是在网络上模拟一个串口控制台,这样编程起来就简单多了。而SSH就复杂得多了。它涉及到加密、身份验证、协商等很多内容。而且,搞错了的话,后果可能会很严重。
Telnet本身并没有问题,但如果你可以通过网络进行更改,而这个网络又不是私有的,那就很容易出问题。
假设这个服务是在一台电脑上运行,为什么不把服务器限制在本地呢?这样你就可以通过SSH登录到这台电脑,然后再用Telnet连接到本地。这样既能保证安全,又不会太麻烦。
1
只需要通过SSH创建一个TCP隧道,然后把所有数据都通过这个隧道传输就可以了,没必要重新发明轮子。你可以在SSH的文档中找到关于TCP隧道的例子(比如可以用man ssh
命令查看)。
不过如果你真的想自己写的话,可以看看paramiko这个项目。