【发布时间】:2014-04-14 06:08:09
【问题描述】:
我有一个需要与我管理的远程服务器通信的 python 客户端。他们使用 zeromq 进行通信。当我在本地测试客户端/服务器时,一切正常。但现在我将客户端和服务器部署在云上,每个都使用不同的提供商。我的问题是,建立连接的最简单方法(即安全)是什么?我假设我无法传递密码,即使可以,我猜还有更安全的选择。
我知道如何使用 ssh-keygen 设置没有密码的 ssh 连接。那行得通吗?客户端是否需要在发送 tcp req 之前与服务器建立 ssh 连接?如果有一个 python 库可以帮助解决这个问题,那将是一个很大的帮助。
谢谢!
更新: 所以超过 24 小时过去了,没有人回复/回答。我想我离解决这个问题越来越近了,但还没有完全解决。我将客户端的密钥添加到服务器上的 .ssh/authorized_key 中,现在我可以在没有密码的情况下从客户端 ssh 到服务器。接下来,我关注了这个post 关于“使用 SSH 建立 PyZMQ 连接”。这是我的客户端代码中的内容:
1 context = zmq.Context()
2 socket = context.socket(zmq.REQ)
3 socket.connect("tcp://localhost:5555")
4 ssh.tunnel_connection(socket, "tcp://locahost:5555", "myuser@remote-server-ip:5555")
5 socket.send_string(some_string)
6 reply = socket.recv()
这不起作用。我不太了解第 3 行和第 4 行,我认为我在那里做错了什么。此外,我的服务器(托管在 linode 上)有一个“默认网关”IP 和一个“公共 IP”——在隧道连接中,我只指定公共 ip,这也是我用来 ssh 到机器的 ip。
【问题讨论】:
标签: python tcp client-server zeromq