假设我有一个在 Linux 机器上运行的 IRC 服务器,并且访问该机器的唯一方法是通过 ssh。我不想向外界开放任何端口,我只希望登录该服务器的人能够连接到在该主机上运行的 IRC 服务器。
我总是可以通过 SSH 连接到服务器并通过 SSH 转发一些端口。有没有更好的方法?有没有 IRC 客户端可以让我安装私钥然后为我转发 IRC 端口?
答案1
我想您应该能够在许多客户端中编写一个脚本,该脚本将执行命令行以打开带有端口转发的 SSH 连接,然后连接到本地主机上的相应端口。
答案2
如果您的用户都能够在与 ircd 相同的系统上运行 irc 客户端:许多客户端和服务器都能够通过 UNIX 域套接字使用连接,因此唯一监听传入流量的就是您的 sshd。
答案3
如果您知道如何设置 SSH 以使用authorized_keys
文件中的密钥进行身份验证,那么您已经成功了一半。您可以配置该文件以在拥有私钥的用户登录时自动运行脚本/命令。这甚至可以包括在服务器端运行 IRC 客户端。
或者,在客户端,您需要进行-L 6667:ircserver:6667
端口转发。然后,只需将您的 IRC 客户端连接到它localhost:6667
,它就可以正常工作。
答案4
我认为,如果您只希望 ircd 上有 shell 用户,最快、技术含量较低的方法是仅在本地 IP(例如 127.0.0.1)上运行 ircd,然后安装基于 CLI 的 IRC 客户端,如 weechat、irssi、bitchx 或 epic。然后,Shell 用户必须通过 ssh 连接到服务器,然后启动 irc 客户端。
安装和使用 screen 也可以帮助用户无需关闭 irc 客户端即可返回到他们的 shell。
希望有所帮助。