用python为基于文本的多人游戏创建安全终端环境的最佳方法

用python为基于文本的多人游戏创建安全终端环境的最佳方法,python,ssh,Python,Ssh,我想为一个有趣的项目创建一个基于文本的多人游戏。我想运行一个python服务器,该服务器响应到我的IP的telnet/ssh。一旦玩家连接,他们将能够输入命令来做不同的事情。将会有聊天、ascii图形、交易和其他各种事情 我需要一个高层次的网络库,将允许我这样做。以下是我目前的问题: 我希望这个服务器是异步的 我希望一切都通过终端通过telnet、ssh或其他内置方式连接到服务器。我不希望最终用户必须安装客户端或依赖项之类的任何东西 我希望在用户连接时进行端到端加密。这就是问题所在。我的猜测是,

我想为一个有趣的项目创建一个基于文本的多人游戏。我想运行一个python服务器,该服务器响应到我的IP的telnet/ssh。一旦玩家连接,他们将能够输入命令来做不同的事情。将会有聊天、ascii图形、交易和其他各种事情

我需要一个高层次的网络库,将允许我这样做。以下是我目前的问题:

  • 我希望这个服务器是异步的

  • 我希望一切都通过终端通过telnet、ssh或其他内置方式连接到服务器。我不希望最终用户必须安装客户端或依赖项之类的任何东西

  • 我希望在用户连接时进行端到端加密。这就是问题所在。我的猜测是,我将无法使用telnet来实现这一点,但我不确定SSH。我需要用户能够通过终端注册和登录他们的帐户,我希望服务器来回发送给客户端的信息被窃听者加密和难以辨认

  • 到目前为止,我最大的问题是弄清楚如何使这个游戏安全,但要在纯终端上运行。我还想用诅咒来制作带有ascii的酷菜单和地图。我将如何实现这一点?我是否能够在服务器端处理带有诅咒的文本并将其发送到客户端,或者客户端是否需要安装诅咒?

    网络

    您可以使用
    asyncio
    :它内置于Py3.4中。它使用异步io实现某种类型的事件循环,并允许在一个进程上有多个客户端。Yoy可以用来实现ssh,它非常安全

    诅咒

    每个终端(来自70th或终端仿真器(如linux控制台或xterm)的真实终端)都有一些转义码,用于绘制伪图形、清除屏幕、嘟嘟声等。这些代码(终端功能)存储在
    termcap
    termfo
    中,相应的终端类型存储在
    $TERM
    环境变量中。诅咒者使用此信息向终端发送正确的代码。所以,您可以在这里使用诅咒,但用法取决于您将使用哪个客户端

    若您打算在Python上编写客户机,那个么您可以在客户机上安装curses,并在协议中使用抽象,如“draw menu”。 在这种情况下,客户甚至可能是图形化的,因为绘图是客户的职责


    但如果要使用简单的ssh客户端(如Windows Putty),则需要获取客户端的终端类型(),将其设置为TERM变量,然后重定向curses输出(如果curses使用它,则重定向stdout)

    考虑ssh和Unix域套接字绑定

    可以保护Unix域套接字不被创建端口转发隧道的用户访问。通过扩展,到远程主机的连接也将被保护不被未经授权的访问。为了支持使用Unix域套接字进行端口转发,SSH中添加了两个选项


    资料来源:

    这帮了大忙。我将研究异步IO和ssh实现。谢谢。我查过这个图书馆,它在我的电脑上不能用。在python3中,它一直给我错误。你可以用这些错误创建另一个问题,也许人们可以帮助你解决它们。我不明白这是如何帮助我的。