我有 2 个客户端,它们都运行 I2P。是否可以通过 I2P 网络内的 SSH 连接它们?
例如:客户端 2 设置 SSH 服务器,客户端 1 连接到该服务器。所有这些都发生在它们都连接到 I2P 时。
答案1
是的,这是可能的。
在客户端2上:
Standard server
在 I2PTunnel 中创建隧道。- 将其设置
Name
为您能识别的内容。 - 将其设置
Target Port
为您的 SSH 服务器正在监听的端口。 - 勾选该
Auto Start
复选框。 - 保存隧道。
- 打开隧道再次进行编辑(单击 I2PTunnel 列表中的名称)。
- 复制
Local destination
字符串。
在客户端 1 上:
Standard client
在 I2PTunnel 中创建隧道。- 将其设置
Name
为您能识别的内容。 Local destination
将之前复制的字符串粘贴到Tunnel Destination
字段中。- 将 设置
Access Point Port
为某个空闲端口 (例如12345
)。 - (可选)选中该
Auto Start
框。 - 保存隧道。
当两个隧道都在运行时,从客户端 1 连接到客户端 2 非常简单:
ssh [email protected] -p 12345
为了提高安全性,您可以为服务器隧道添加白名单。这意味着只有拥有您的客户端隧道私钥的人才能连接到服务器目标。
在客户端 1 上:
- 打开客户端隧道进行编辑。
- 在 下
Persistent private key
,选择Enable
,然后将 中的名称更改File
为您能识别的名称。- 此文件存储在您的 I2P 配置目录中(在 *nix 系统上,此目录为 ~/.i2p/)。如果此文件丢失或删除,则在客户端 1 路由器重新启动时将生成一组新的不同密钥,并且您将无法通过 SSH 进入客户端 2,除非您将新密钥添加到白名单中。
- 保存隧道并重新启动。
- 再次打开隧道进行编辑,并复制
Local destination
字符串。
在客户端2上:
- 打开服务器隧道进行编辑。
- 在下
Restricted Access List(s)
,选择Whitelist
。 Local destination
将之前复制的字符串粘贴到Access List
框中。- 保存隧道并重新启动。